GitHub Pull Request Triage Assistant
This application provides reports of various GitHub pull requests, so it's easy to identify pull requests that correspond to certain parts of an application, or that are submitted by certain authors. It can also be used to identify pull requests with merge conflicts that need revisions, so that authors can go back and resolve those conflicts.
In short, it simplifies running large, very active projects that use pull requests for contribution.
A demo is available at http://ansible.sivel.net
git clone https://github.com/sivel/pr-triage.git
pip install -r requirements.txt
- Create a
triage.yamlconfiguration file as described below
This file can live at
--- # Required Configuration title: My PR Triage github_client_id: 1ecad3b34f7b437db6d0 github_client_secret: 6689ba85bb024d1b97370c45f1316a16d08bba20 github_repository: - 'ansible/ansible' # Optional Configuration use_rackspace: true pyrax_credentials: ~/.rackspace_cloud_credentials pyrax_region: DFW pyrax_container: ansible-pr-triage
The above values are dummy placeholder values and are not valid for use
You will need to register an application to provide API access. The Client ID and Secret will need to be populated as shown in the above example.
There are currently 2 options for hosting the HTML files generated by this application.
- Rackspace CloudFiles
triage.py will write out HTML files to a directory called
htmlout. You can
host these files directly out of that directory using a webserver such as
Apache or nginx.
It is not required that you upload the files to Rackspace CloudFiles, this is just here for convenience. The CloudFiles container that you wish to upload to should already exist and be configured to host a static website. See Point And Click Your Way To A Cloud Files Static Website With The Control Panel for details on how to configure this.
pip install pyrax
It is recommended that you run
triage.py via cron. The fewer pull requests a
project has the more frequently you can run the cron job. I'd recommend
starting with every 60 minutes (1 hour).