Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Automate Github Pull Requests using Reactions

Project description

This simple project allows github projects to be automated. It uses “reaction” as a voting mechanism to automatically merge (or close) pull requests.

Consensus Rules

The file .gitconsensus.yaml needs to be placed in the repository to be managed. Any rule set to false or ommitted will be skipped.

# Add extra labels for the vote counts and age when merging
extra_labels: false

# Minimum number of votes
quorum: 5

# Required percentage of "yes" votes
threshold: 0.65

# Only process votes by contributors
contributors_only: false

# Only process votes by collaborators
collaborators_only: false

# When defined only process votes from these github users
whitelist:
  - alice
  - bob
  - carol

# Number of days after last action (commit or opening the pull request) before issue can be merged
mergedelay: 3

# Number of days after last action (commit or opening the pull request) before issue is autoclosed
timeout: 30

Voting

Votes are made by using reactions on the top level comment of the Pull Request.

Reaction Vote
+1 Yes
-1 No
confused Abstain

Commands

Authentication

gitconsensus auth

You will be asked for your username, password, and 2fa token (if configured). This will be used to get an authentication token from Github that will be used in place of your username and password (which are never saved).

Merge

Merge all pull requests that meet consensus rules.

gitconsensus merge USERNAME REPOSITORY

Close

Close all pull requests that have passed the “timeout” date (if it is set).

gitconsensus close USERNAME REPOSITORY

Info

Get detailed infromation about a specific pull request and what rules it passes.

gitconsensus info USERNAME REPOSITORY PR_NUMBER

Force Close

Close specific pull request, including any labels and comments that normally would be sent.

gitconsensus forceclose USERNAME REPOSITORY PR_NUMBER

Force Merge

Merge specific pull request, including any labels and comments that normally would be sent.

gitconsensus forcemerge USERNAME REPOSITORY PR_NUMBER

Label Overrides

Any Pull Request with a WIP or DONTMERGE label (case insensitive) will be skipped over.

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
gitconsensus-0.1.0-py3-none-any.whl (9.1 kB) Copy SHA256 hash SHA256 Wheel py3 Aug 22, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page