GithubHelp home page GithubHelp logo

isabella232 / checks-out Goto Github PK

View Code? Open in Web Editor NEW

This project forked from capitalone/checks-out

0.0 0.0 0.0 3.34 MB

Checks-Out pull request approval system

License: Apache License 2.0

Makefile 0.33% Go 82.62% PLSQL 0.05% HTML 2.41% JavaScript 1.01% CSS 13.48% PLpgSQL 0.09%

checks-out's Introduction

Checks-Out

Join the chat at https://gitter.im/capitalone/checks-out

Checks-Out is a simple pull request approval system using GitHub protected branches and maintainers files. Pull requests are locked and cannot be merged until the minimum number of approvals are received. Project maintainers can indicate their approval by commenting on the pull request and including "I approve" in their approval text. Checks-Out also provides integration with GitHub Reviews. An accepted GitHub Review is counted as an approval. GitHub Review that requests additional changes blocks the pull request from merging.

Read the online documentation to find out more about Checks-Out.

Development

Checks-Out is a fork of LGTM. Our git repository contains the commit history from the upstream project. We are actively seeking contributions from the community. If you'd like to contribute we recommend taking a look at the issues page. You can pick up an open issue and work on it, submit a bug, or submit a new feature request for feedback.

Features

Checks-Out has several features that distinguish itself from the parent LGTM project.

The most popular feature is the ability to specify multiple approval policies. Policies are based around the concept of organizations. An organization is a set of project maintainers. Various types of thresholds can be configured for organizations and boolean conditions can be used to combine policies. Policies can be configured to apply to specific file paths and/or git branches. Refer to the customization documentation for more information about policies.

Checks-Out has optional support for automatic tagging of merges. Tags can configured based on timestamp or semantic versioning.

Checks-Out has optional support for automatic merging of pull requests when all status checks have passed.

Checks-Out has changed the default behavior when new commits are added to a pull request. By default only comments that have a later timestamp than the latest commit are processed by Checks-Out. There is a configuration property to use the original LGTM behavior which is to consider all comments on a pull request.

Usage

.checks-out file

Each repository managed by Checks-Out must have a .checks-out file in the root of the repository. This file provides the configuration that Checks-Out uses for the repository. The configuration file is described in detail in the customization section of the online documentation.

This repository has an .checks-out file that you can use as an example. It is likely that you will need a simple .checks-out file, so you can use the following template:

approvals:
[
  {
    match: "all[count=1,self=false]"
  }
]

MAINTAINERS file

Each repository managed by Checks-Out should have a MAINTAINERS file that specifies who is allowed to approve pull requests. The format of the file is described in the maintainers section of the online documentation. Here is a sample MAINTAINERS file to get you started:

github-org repo-self

Build

Checks-Out uses the Go dep dependency management tool. Dependencies are not stored in the repository. Run dep ensure to install dependencies.

Commands to build from source:

make build   # Build the binary

Contributors

We welcome your interest in Capital One’s Open Source Projects (the “Project”). Any Contributor to the Project must accept and sign a CLA indicating agreement to the license terms. Except for the license granted in this CLA to Capital One and to recipients of software distributed by Capital One, You reserve all right, title, and interest in and to your Contributions; this CLA does not impact your rights to use your own contributions for any other purpose.

Link to Individual CLA

Link to Corporate CLA

This project adheres to the Capital One Open Source Code of Conduct. By participating, you are expected to honor this code.

Contribution Guidelines

We encourage any contributions that align with the intent of this project and add more functionality or languages that other developers can make use of. To contribute to the project, please submit a PR for our review. Before contributing any source code, familiarize yourself with the Apache License 2.0, which controls the licensing for this project.

License

Checks-Out is available under the Apache License 2.0.

This distribution has a binary dependency on errwrap, which is available under the Mozilla Public License 2.0 License. The source code of errwrap can be found at https://github.com/hashicorp/errwrap.

This distribution has a binary dependency on go-version, which is available under the Mozilla Public License 2.0 License. The source code of go-version can be found at https://github.com/hashicorp/go-version.

This distribution has a binary dependency on go-multierror, which is available under the Mozilla Public License 2.0 License. The source code of go-multierror can be found at https://github.com/mspiegel/go-multierror.

This distribution has a binary dependency on go-sql-driver/mysql, which is available under the Mozilla Public License 2.0 License. The source code of go-sql-driver/mysql can be found at https://github.com/go-sql-driver/mysql

FAQ

1. How is this different from GitHub Reviews?

Please use GitHub Reviews if it meets all your requirements. Some significant features in Checks-Out that are not (yet) in GitHub Reviews are: custom approval policies, different approval policies for different branches and/or file paths, optional auto-merge when all status checks have passed, optional auto-tagging of merges.

checks-out's People

Contributors

bradrydzewski avatar gitter-badger avatar jonathana avatar jonbodner avatar knechtionscoding avatar mluby avatar mspiegel avatar peterdavehello 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.