GitHub - atgreen/gail: An AI-powered GitHub Issue Labeler

2 min read Original article ↗

gail

An AI-powered GitHub Issue labeler

What is it?

gail will review the Issues in your GitHub-hosted project and, where appropriate, assign new labels to the Issues from a list of label options you provide. gail is currently configured to use OpenAI LLMs to accomplish this.

You can also use gail in GitHub Actions to label all new incoming Issues. Checkout the easy-to-use GitHub Action here: https://github.com/atgreen/gail-issue-labeler-action

I wrote gail to add some semblance of order to libffi's ~200 open Issues. It exceeded expectations, and I hope you enjoy it as well!

Building gail

Download all dependencies using ocicl.

Now run make. You are done.

Using gail

Labeling Issues has never been easier. Here's the gail help message with all of the instructions that you'll need:

NAME:
  gail - GitHub Automated Issue Labeler

USAGE:
  gail OWNER REPO | --action OWNER REPO

OPTIONS:
      --help           display usage information and exit
      --version        display version and exit
  -a, --action         Process a single issue from stdin instead of fetching from repository
  -l, --labels <PATH>  Labels file [default: .gail-labels]
  -m, --model <VALUE>  OpenAI model to use [default: gpt-4o-mini]
  -n, --dry-run        Show what would be labeled without actually labeling

EXAMPLES:

  Label issues in the libffi/libffi repository:

    gail libffi libffi

  Dry run with custom labels file:

    gail --labels my-labels.txt --dry-run microsoft vscode

  Use a different OpenAI model:

    gail --model gpt-4 owner repo

  Process a single issue from stdin:

    gail --action owner repo

  Process stdin issue with custom labels:

    gail --action --labels my-labels.txt owner repo

AUTHORS:
  Anthony Green <green@moxielogic.com>

LICENSE:
  MIT License

Note that you can simply commit your custom .gail-labels file to your repo and run gail in your project's root directory in order to pick up your custom labels. As an example, here's the file I created for libffi: https://github.com/libffi/libffi/blob/master/.gail-labels

Author and License

gail was written by Anthony Green, and is distributed under the terms of the MIT license.