#github-pull-request-dashboard
A simple web application which shows outstanding pull requests for repos it has been configured to watch. Shows the following information for each PR:
- Whether or not it is assigned (and to whom).
- How long the PR has been open for.
- Who opened the PR.
PRs are sorted in to 'assigned' and 'unassigned' groups and are oldest first within each group in order to encourage teams to work in a FIFO manner and not to pick favourites.
Each piece of PR information contains a link to the PR in GitHub.
#Origins
This project started life as an internal tool in HMRC's WebOps team, the initial development was done mostly by Stephen Crossan. WebOps' Digital Service Manager Kalbir Sohi and Steve Crossan have both kindly agreed that this 'generified' code can now be open sourced.
Open the project in your favourite IDE, don't forget to point the IDE at the virtualenv (see path above)
We use pyenv and pyenv-virtualenv to manage the Python installation and the VirtualEnv respectively. The makefile
will not work without these.
Create and activate a virtual environment by running the following comands in the root of this directory:
make venv
source ~/.pyenv/versions/venv-github-pull-requests-dashboard-2.7.10/bin/activate
Install the required dependencies in to the VirtualEnv:
make pip
Before the app can be run it will need some basic configuration:
The application authenticates against GitHub using an OAuth token, details here on how to create one:
Your OAuth token requires the following permissions:
- repo
- public_repo
- repo:status
Watched repos are expressed in a YAML document which is passed to the application via an environment variable named REPOS
. The configuration structure is made up of a list of watched 'groups'. Each group is given a name and one or more repositories to watch.
Here's an example of the required YAML document structure.
---
-
group: edd
description: PRs on Edd's Projects
watches:
-
owner: eddgrant
repo: vagrant-roller
-
owner: eddgrant
repo: github-pull-request-dashboard
-
group: beeb
watches:
-
owner: bbc
repo: gatling-load-tests
-
owner: bbc
repo: hive-runner
-
group: hmrc
watches:
-
owner: hmrc
repo: ct-calculations
The app can be run either directly from source or as a docker container, the configuration in both cases is the same:
run.sh
provides an example of how to run the application from source, simply configure the file with your OAuth token and the repositories you want to watch and then execute the script.
The application will then start and will be available at http://localhost:8000
This is a work in progress and will be detailed soon.