Skip to content

pavelzag/NudgeBot

 
 

Repository files navigation

NudgeBot

NudgeBot is a Pull request review and repository tracking bot which collect statistics and perform actions in a Github repository.

It's called "NudgeBot" since origininally it used to "nudge" reviewers to review pull request after some period without comment.


Note: ✋ This project is still not a generic framework (not enough). Currently it's under development and in use and tested internaly.


Functionality:

  • Perform actions in the pull request, i.e. add reviewers, post comment, etc.

  • Collect pull requests statistics and repository statistics.

  • Send reports to the repository maintainers.

  • Provide a live dashboard which present the current statistics/status of the review process. E.g.

    alt text alt text

Design:

Base components:

  • flow tree, A tree that describing the action to perform for each case in the pull request. This flow tree consists of:
    • Case - Describing a situation in the pull request, a "Case".
    • Action - Describing an action to perform in that situations/cases.
  • Pull request statistics Containing various statistics of a pull request.
  • Reviewers pool a pool that containing the reviewers of the repository, including number of PRs per reviewer, this object used to decide which reviewer to set per pull request.
  • The bot The NudgeBot that handling the events, process the flow and performing actions.
  • Reports Provides the ability to easily produce, trigger reporting about the repository.
  • Server The server side.
  • Config Includes the configuration file and credentials.

Future plans:

  • Change the server to use Django instead of flask.
  • Extend the functionality to include more statistics about the repository.

Notes:

  • This project is still not a generic framework (not enough). Currently it's under development and in use and tested internaly.
  • More documentation will be released later.

About

A pull request review and repository tracking bot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%