Skip to main content

Automatically label Github pull requests based on elements of the PR title. Expects Jira style ticket code(PROJ-100) in PR title

Project description

pull_request_auto_labeler

Automatically label Github pull requests based on elements of the PR title. Expects Jira style ticket code(PROJ-100) in PR title

This labeler does the following:

  • get all open Pull Requests for all the repositories for an organization/user
  • check each PR to see if it has any matching a Jira style ticket code in the title (PROJ-100)
  • apply a label to the Pull Request matching the uppercase version of the project codes from the title (PROJ)

Setup

Set the following enviornment vars:

  • GITHUB_API_TOKEN : A Github API Token which has access to read the repositories you want and modify pull requests. If you don't have one you see the guide here
  • ORGANIZATION the name of the github organization/username that you want to check PRs for.

Running from command line

python auto_labeler.py

Running as a Cron on AWS Lambda

For convenience I've included setup instructions to run this as a cron using aws lambda made easy by the [serverless] (https://serverless.com/framework/docs/) toolkit. If you haven't used serverless, I have a getting started with serverless guide here

Install serverless plugins

serverless-python-requirements

Its pretty annoying to add external requirements to a lambda when deploying manually. You have to build the wheels for the packages on an aws linux ami and include those in the zip that you upload. Luckily, there's a serverless plugin to make that all super easy.

sls plugin install -n serverless-python-requirements

Setup serverless for this project

  • Copy the serverless.yaml, serverless-requirements.txt and handler.py files in this repo
  • tweak any provider params you need to to match your setup
  • Set the run frequency (update under functions>lambdaCron>events>schedule)

Deploy to AWS

sls deploy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pull_request_auto_labeler-0.9.tar.gz (3.3 kB view hashes)

Uploaded Source

Built Distribution

pull_request_auto_labeler-0.9-py3-none-any.whl (4.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page