Rezensent

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

Repository

KnisterPeter/rezensent

Authors

KnisterPeter

Updated

November 27, 2023

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

termexplanation
managed pull requestA pull request labeled with the 'manage label'
team pull requestA pull request created by the app per team
codeownersCODEOWNERS

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:

namedescriptionrequireddefault
APP_IDThe GitHub app idyes
PRIVATE_KEYThe private key obtained from githubyes
WEBHOOK_SECRETThe webhook secret set during app creationyes
PORTThe port of the app inside the containerno3000

Get occasional updates on new apps & features.