Skip to content

Latest commit

 

History

History
90 lines (62 loc) · 4.69 KB

File metadata and controls

90 lines (62 loc) · 4.69 KB

Contributing

Hi! Thanks for your interest in contributing to the GitHub CLI!

We accept external pull requests only for issues labelled help wanted with explicit Acceptance Criteria. We encourage issues and discussion posts for all other contributions. For security concerns, follow our private disclosure policy instead.

Please do:

  • Check issues to verify that a bug or feature request issue does not already exist for the same problem or feature
  • Open an issue if things aren't working as expected
  • Open an issue to propose a change
  • Open an issue to propose a design for an issue labelled needs-design and help wanted, following the proposing a design guidelines instructions below
  • Open an issue to propose a new community supported gh package with details about support and redistribution
  • Mention @cli/code-reviewers when an issue you want to work on does not have clear Acceptance Criteria
  • Open a pull request for an issue labelled help wanted with explicit Acceptance Criteria. Issues labelled good first issue must also meet these requirements

Please do NOT:

  • Open a pull request for issues without the help wanted label or explicit Acceptance Criteria
  • Expand pull request scope to include changes that are not described in the issue's Acceptance Criteria
  • Open pull requests for any issue marked core. These issues require additional context from the core CLI team at GitHub and any external pull requests will not be accepted

Building the project

Prerequisites:

  • Go 1.26+

Build with:

  • Unix-like systems: make
  • Windows: go run script/build.go

Run the new binary as:

  • Unix-like systems: bin/gh
  • Windows: bin\gh

Run tests with: go test ./...

See the development guides for project layout, command conventions, testing, and API/host behavior.

Submitting a pull request

  1. Create a new branch: git checkout -b my-branch-name
  2. Make your change, add tests, and ensure tests pass
  3. Submit a pull request: gh pr create --web

Contributions to this project are released to the public under the project's open source license.

Please note that this project adheres to a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

We generate manual pages from source on every release. You do not need to submit pull requests for documentation specifically; manual pages for commands will automatically get updated after your pull requests gets accepted.

Design guidelines

Proposing a design

You may propose a design to solve an open bug or feature request issue that has both the needs-design and help-wanted labels.

To propose a design:

  • Open a new issue using the design proposal issue template.
  • Include a link to the issue that the design is for.
  • Describe the design you are proposing to resolve the issue, leveraging the CLI Design System.
  • Mock up the design you are proposing using our Google Docs Template or code blocks.
    • Mock ups should clearly illustrate the command(s) being run and the expected output(s).

(core team only) Reviewing a design

A member of the core team will triage the design proposal. Once a member of the core team has reviewed the design, they may add the help wanted label to the issue, so a PR can be opened to provide the implementation.

Resources