Code Monkey home page Code Monkey logo

gitvote's Introduction

GitVote

CI Artifact Hub

GitVote is a GitHub application that allows holding a vote on issues and pull requests.

Usage

The first step is to install the GitVote GitHub application in the organization or repositories you'd like. Alternatively, you can deploy your own instance of the GitVote service by using the Helm chart provided (some organizations may prefer this option for private repositories).

Once the application has been installed we can proceed with its configuration.

Configuration

To create votes, you'll first need to add a .gitvote.yml configuration file. GitVote will look for it in the following locations (in order of precedence):

  • At the root of the repository where the vote was created
  • At the root of the .github repository, for organization wide configuration

Please note that the configuration file is required and no commands will be processed if it cannot be found. Once a vote is created, the configuration it will use during its lifetime will be the one present at the vote creation time.

For more information about the configuration file format please see the reference documentation.

Creating votes

Votes can be created by calling the /vote command on an issue or pull request. This can be done by:

  • adding the /vote command to the issue or pull request body at creation time
  • adding a new comment to an existing issue or pull request with the /vote command in it

The command must be on a line by itself. Please note that GitVote only detects commands in issues or pull requests bodies when they are opened, or when comments are created, not when any of them are edited.

create-vote

Alternatively, if you have setup multiple configuration profiles, you can also start votes using any of them with the command /vote-PROFILE.

Only repositories collaborators can create votes. For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.

Shortly after the comment with the /vote command is posted, the vote will be created and the bot will post a new comment to the corresponding issue or pull request with the vote instructions.

vote-created

Automation

GitVote allows votes to be created automatically on pull requests when any of the files affected matches certain predefined patterns. For more information about how to set it up, please see the automation section in the reference documentation.

Voting

Users can cast their votes by reacting to the git-vote bot comment where the vote was created (screenshot above).

It is possible to vote in favor, against or to abstain, and each of these options can be selected with the following reactions:

In favor Against Abstain
๐Ÿ‘ ๐Ÿ‘Ž ๐Ÿ‘€

Only votes from users with a binding vote as defined in the configuration file will be counted.

Please note that voting multiple options is not allowed and those votes won't be counted.

Checking votes

It is possible to check the status of a vote in progress by calling the /check-vote command:

vote-status

Please note that this command can only be called once a day per vote (additional calls will be ignored).

Closing votes

Once the vote time is up, the vote will be automatically closed and the results will be published in a new comment.

vote-closed

Cancelling votes

It is possible to cancel a vote in progress by calling the /cancel-vote command:

vote-cancelled

Checks in pull requests (experimental)

When a vote on a pull request is closed, GitVote will add a check to the head commit with its result. If the vote passes, the result of the check will be success, whereas if it doesn't pass, it'll be failure. When used in combination with protected branch, this feature can be used to require a vote in favor before a pull request can be merged.

check-passed

At the moment this feature is always enabled but we'll make it configurable so that votes creators can opt-out per configuration profile.

Contributing

Please see CONTRIBUTING.md for more details.

Code of Conduct

This project follows the CNCF Code of Conduct.

License

GitVote is an Open Source project licensed under the Apache License 2.0.

gitvote's People

Contributors

tegioz avatar cynthia-sg avatar dependabot[bot] avatar etiennetremel avatar r3drun3 avatar sajayantony avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.