Github action to print relevant stats about Pull Request reviewers.
The objective of this action is to:
- Reduce the time taken to review the pull requests.
- Encourage quality on reviews.
- Help deciding which people to assign as reviewers.
Running this action will add a section at the bottom of your pull requests description:
Each reviewer has a link pointing to their historical behavior of each reviewer:
Just add this action to one of your workflow files:
- name: Run pull request stats
uses: flowwer-dev/pull-request-stats@master
The possible inputs for this action are:
Parameter | Description | Default |
---|---|---|
token |
GITHUB_TOKEN or a Personal Access Token with "repo" permission. |
GITHUB_TOKEN |
repositories |
A comma separated list of github repositories to calculate the stats. When specifying other repo(s) it is mandatory to pass a Personal Access Token in the token parameter. |
Current repository |
organization |
If you prefer, you may specify the name of your organization to calculate the stats across all of its repos. When specifying an organization it is mandatory to pass a Personal Access Token in the token parameter. |
null |
period |
The length of the period used to calculate the stats, expressed in days. | 30 |
charts |
Whether to add a chart to the start or not. Possible values: true or false . |
false |
disable-links |
If true , removes the links to the detailed charts. Possible values: true or false . |
false |
sort-by |
The column used to sort the data. Possible values: REVIEWS , TIME , COMMENTS . |
REVIEWS |
limit |
The maximum number of rows to display in the table. A value of 0 means unlimited. |
0 |
Minimal config
Add this to the file .github/workflows/stats.yml
in your repo:
name: Pull Request Stats
on: pull_request
jobs:
stats:
runs-on: ubuntu-latest
steps:
- name: Run pull request stats
uses: flowwer-dev/pull-request-stats@master
This config will:
- Calculate the reviewer stats for the current repo in the lasts 30 days
- Add links to the historial data
- Sort results by the "total reviews" column by default
and print a table like this:
User | Total reviews | Median time to review | Total comments | |
---|---|---|---|---|
jartmez | 37 | 22m | 13 | |
manuelmhtr | 35 | 48m | 96 | |
ernestognw | 25 | 1h 27m | 63 | |
javierbyte | 12 | 30m | 0 | |
Phaze1D | 4 | 34m | 1 |
Visual config
Add this to the file .github/workflows/stats.yml
:
name: Pull Request Stats
on: pull_request
jobs:
stats:
runs-on: ubuntu-latest
steps:
- name: Run pull request stats
uses: flowwer-dev/pull-request-stats@master
with:
token: ${{ secrets.ADD_A_PERSONAL_ACCESS_TOKEN }}
organization: 'piedpiper'
period: 7
charts: true
disable-links: true
sort-by: 'COMMENTS'
This config will:
- Calculate the reviewer stats for all the repos in the "piedpiper" organization in the lasts 7 days
- Display charts for the metrics
- Remove the links to detailed charts
- Sort results by the "comments" column
and print a table like this:
The stats are calculated as following:
- Time to review: It is the time taken by a reviewer from the Pull Request publication or the last Commit push (whatever happens last) to the first time the pull request is reviewed.
- Median time to review: It is the median of the times to review of all Pull Requests reviewed by a person in the period.
- Total reviews: It is the count of all Pull Requests reviewed by a person in the period.
- Total comments: It is the count of all the comments while reviewing other user's Pull Requests in the period (comments in own PRs don't count).
Used by tens of successful teams like:
Lululemon |
Ganfully |
Delivery Hero |
SHE Inc |
Hatch |
Oneflare |
Confluent Inc |
Yotepresto |
---|
This project is maintained by a single person, considering supporting the project by:
AGPLv3