GitXplorerGitXplorer
b

rivi

public
47 stars
8 forks
3 issues

Commits

List of commits on branch development.
Verified
3d20527d2d3dcb256bb6b274518ba0410cb8c4b7

re-thinking rivi (#52)

bbivas committed 6 years ago
Verified
1ff79a02e95d70f7baa37526e25ca02d4e89f7f1

less logging when using gin (#47)

bbivas committed 7 years ago
Verified
d62302fd9d21b0056557f6852ab350a8be42d8b9

Actions status (#46)

bbivas committed 7 years ago
Unverified
6f921a899de184cb5fa88ec95f3af82b0f626646

Fixing typo in assertClientConfig function. (#44)

rrajendraarora16 committed 7 years ago
Verified
75462379b192d9646aac5dbb66a7d91f1dcd26b3

extend from single pattern to multiple and support not-pattern (#43)

bbivas committed 7 years ago
Verified
4a87fd084ad83f3f9be357c8103a5e62abb217fd

Diff check (#40)

bbivas committed 7 years ago

README

The README file for this repository.

Build Status Go Report Card codecov

rivi - Simplify your review process

Managing a repository can require tedious administrative work, and as pull requests increase, it becomes even more complex. Today’s review flow lacks important visible information that leads to serious management issues.

Rivi is an innovative tool that automates repository management. Forget about manually checking which module was modified, or which people are in charge of a pull review, Rivi will do it for you. Rivi enables automatic labeling with common parameters so that maitainers can immediately understand their repository status with a quick glance. It also assigns relevant people to pull request reviews, allows to add comments, merges pull requests, sends triggers to relevant systems and notifying them about issues that require prompt attention and more.

With Rivi, developers can focus on the actual code base and less on administrative unambiguous actions made every day. We are looking to add more automation features to make the repository management process seamless, and our highest priority is to ensure that Rivi lives up to the community standards by providing true value and efficiency.

Usage

Rivi is available as a Github Application. Find out more at rivi-cm.org

If you wish to host rivi on your local environment, please follow the installation guide

Configuration File Structure

Place a .rivi.yaml file at the repository root directory to be processed.

This configuration file might have multiple sections (depending on your scenario), but the only required one is rules section

Rules Section

Configure rules to be processed on each issue event. Each rule may have several actions. See examples for various rules.

Structure

rules:
  rule-name1:
    <condition>
    <action-name>
    <action-name>
    <action-name>
    ...
  rule-name2:
    <condition>
    <action-name>
...

Example

rules:
  rule-name:
      condition:
        if-labeled:
          - label1
          - label2
        skip-if-labeled:
          - label3
        files:
          patterns: 
            - "docs/.*"
          extensions: 
            - ".go"
        title:
          starts-with: "BUGFIX"
          ends-with: "WIP"
          patterns:
            - ".* Bug( )?[0-9]{5} .*"
        description:
          starts-with: "test PR please ignore"
          ends-with: "don't review yet"
          patterns:
            - ".*depends on #[0-9]{1,5}.*"
        ref:
          match: "master"
          patterns:
            - "integration_v[0-9]{2}$"
        comments:
          count: ">10"
        order: 5
      commenter:
        comment: "We have a match!"
      labeler:
        label: ready-for-review

Condition

The entire condition section is optional - you can run all rules all the time and see if it helps 😄

Find out about available condition options here

Available Actions

  • autoassign - Automatic assignment of issue reviewers
  • automerge - Automatic merge for approved pull requests
  • commenter - Add comment to an issue
  • labeler - Add/Remove label to/from an issue
  • sizing - Size a pull request
  • trigger - Send HTTP triggers
  • locker - Lock an issue
  • slack - Send Slack messages
  • status - Update pull request commit status

Example Configuration

config:
  provider: github
  token: my-very-secret-token
  secret: my-hook-secret-shhhhh

roles:
  admins:
      - user1
      - user2
  reviewers:
      - user3
      - user4
  testers:
      - user2
      - user4

rules:
  pr-size:
        sizing:
          xs:
            label: size/xs
            changed-files-threshold: 5
          s:
            label: size/s
            changed-files-threshold: 15
          default:
            label: pending-approval
            comment: "Your pull-request is too large for review"

  docs:
        condition:
          files:
            patterns: 
              - "docs/.*"
        labeler:
          label: documentation

  assignment:
        condition:
          skip-if-labeled:
            - pending-approval
        autoassign:
          roles:
            - admins
            - reviewers