Hi! Thanks for your interest in contributing to the GitHub CLI!
We accept pull requests for bug fixes and features where we've discussed the approach in an issue and given the go-ahead for a community member to work on it. We'd also love to hear about ideas for new features as issues.
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 significant change.
- Open an issue to propose a design for an issue labelled
needs-design
andhelp wanted
, following the proposing a design guidelines instructions below. - Open a pull request to fix a bug.
- Open a pull request to fix documentation about a command.
- Open a pull request for any issue labelled
help wanted
orgood first issue
.
Please avoid:
- Opening pull requests for issues marked
needs-design
,needs-investigation
, orblocked
. - Opening pull requests that haven't been approved for work in an issue
- Adding installation instructions specifically for your OS/package manager.
- Opening 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.
Prerequisites:
- Go 1.22+
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 project layout documentation for information on where to find specific source files.
- Create a new branch:
git checkout -b my-branch-name
- Make your change, add tests, and ensure tests pass
- 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.
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 cleary illustrate the command(s) being run and the expected output(s).
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.