KnisterPeter / rezensent

The rezensent is a github app which help managing big pull requests in a repository divided by code ownership rules

Home Page:https://github.com/apps/rezensent

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rezensent

The rezensent (german for reviewer) is a github app which help managing big pull requests in a repository divided by code ownership rules.

Idea

Split a pull request into several smaller ones along the lines of ownership. Then maintain the spitted pull requests using the app.

It is loosely based on the idea of googles rosie

With Rosie, developers create a large patch, either through a find-and-replace operation across the entire repository or through more complex refactoring tools. Rosie then takes care of splitting the large patch into smaller patches, testing them independently, sending them out for code review, and committing them automatically once they pass tests and a code review. Rosie splits patches along project directory lines, relying on the code-ownership hierarchy described earlier to send patches to the appropriate reviewers

How it works

Terminology

term explanation
managed pull request A pull request labeled with the 'manage label'
review pull request A pull request created by the app per team
codeowners CODEOWNERS

Steps

  • Whenever a pull request is labeled with the configured 'manage label', the app will create a pull request with just the changes for each team.

  • Then each team can review their changes separated from the other teams and when the pull request is approved it can be merged.

  • As soon as the app detects a merge, the managed pull request is updated to the HEAD of it's base branch. And all remaining team pull requests are update/recreated.

  • When there are no changes left, the managed pull request is closed as all changes are integrated into it's base branch.

Process description

process

Usage

Public App

The app is publicly available for free at https://github.com/apps/rezensent.

You can just add it to your github repository and complete the onboarding process.

Docker

The app could be hosted using the provided docker image.

The container need to be configured by the following environment variables:

name description required default
APP_ID The GitHub app id yes
PRIVATE_KEY The private key obtained from github yes
WEBHOOK_SECRET The webhook secret set during app creation yes
PORT The port of the app inside the container no 3000
SCHEDULE_DELAY The initial scheduler delay before first run no 0
SCHEDULE_TIMEOUT The delay between scheduler runs no 1800000

About

The rezensent is a github app which help managing big pull requests in a repository divided by code ownership rules

https://github.com/apps/rezensent

License:MIT License


Languages

Language:TypeScript 99.6%Language:Shell 0.2%Language:Dockerfile 0.1%Language:JavaScript 0.1%Language:Procfile 0.0%