mirror of
https://github.com/zoriya/octokit.net.git
synced 2025-12-05 23:06:10 +00:00
113 lines
4.6 KiB
Markdown
113 lines
4.6 KiB
Markdown
# How to Contribute
|
|
|
|
We love Pull Requests! Your contributions help make Octokit great.
|
|
|
|
## Getting Started
|
|
|
|
So you want to contribute to Octokit. Great! Contributions take many forms
|
|
from submitting issues, writing docs, to making code changes. We welcome
|
|
it all. Don't forget to sign up for a [GitHub account](https://github.com/signup/free),
|
|
if you haven't already.
|
|
|
|
## Getting Started
|
|
|
|
You can clone this repository locally from GitHub using the "Clone in Desktop"
|
|
button from the main project site, or run this command in the Git Shell:
|
|
|
|
`git clone git@github.com:octokit/Octokit.net.git Octokit`
|
|
|
|
If you want to make contributions to the project,
|
|
[forking the project](https://help.github.com/articles/fork-a-repo) is the
|
|
easiest way to do this. You can then clone down your fork instead:
|
|
|
|
`git clone git@github.com:MY-USERNAME-HERE/Octokit.net.git Octokit`
|
|
|
|
After doing that, run the `.\build.cmd` script at the root of the repository
|
|
to ensure all the tests pass.
|
|
|
|
### How can I get involved?
|
|
|
|
We have a [`easy-fix`](https://github.com/octokit/octokit.net/issues?labels=easy-fix&state=open)
|
|
tag on our issue tracker to indicate tasks which contributors can pick up.
|
|
|
|
If you've found something you'd like to contribute to, leave a comment in the issue
|
|
so everyone is aware.
|
|
|
|
For v1 of the Octokit.net API, we're looking to support everything that v3 of the
|
|
GitHub API supports. As this is currently a pre-1.0 library, we're always looking
|
|
for ways to improve the API to make it easy to work with the GitHub API.
|
|
|
|
## Making Changes
|
|
|
|
When you're ready to make a change,
|
|
[create a branch](https://help.github.com/articles/fork-a-repo#create-branches)
|
|
off the `master` branch. We use `master` as the default branch for the
|
|
repository, and it holds the most recent contributions, so any changes you make
|
|
in master might cause conflicts down the track.
|
|
|
|
If you make focused commits (instead of one monolithic commit) and have descriptive
|
|
commit messages, this will help speed up the review process.
|
|
|
|
If you're adding new files to the Octokit project, we have a helper script to
|
|
synchronize these changes with the Mono* projects in the solution.
|
|
|
|
Just run this command: `.\build FixProjects`
|
|
|
|
Octokit.net also has a suite of tests which you can run to ensure existing
|
|
behaviour is unchanged. If you're adding new features, please add some
|
|
tests alongside so the maintainers can sleep at night, knowing their
|
|
safety blanket is nice and green!
|
|
|
|
Run this command to confirm all the tests pass: `.\build`
|
|
|
|
### Running integration tests
|
|
|
|
Octokit has integration tests that access the GitHub API, but they require a
|
|
bit of setup to run. The tests make use of a set of test accounts accessed via
|
|
credentials stored in environment variables.
|
|
|
|
Run the following interactive script to set the necessary environment
|
|
variables:
|
|
|
|
`.\script\configure-integration-tests.ps1`
|
|
|
|
Once these are set, the integration tests will be executed both when
|
|
running the IntegrationTests build target, or when running the
|
|
Octokit.Tests.Integration assembly in the Visual Studio test runner.
|
|
|
|
### Submitting Changes
|
|
|
|
You can publish your branch from GitHub for Windows, or run this command from
|
|
the Git Shell:
|
|
|
|
`git push origin MY-BRANCH-NAME`
|
|
|
|
Once your changes are ready to be reviewed, publish the branch to GitHub and
|
|
[open a pull request](https://help.github.com/articles/using-pull-requests)
|
|
against it.
|
|
|
|
A few little tips with pull requests:
|
|
|
|
- prefix the title with `[WIP]` to indicate this is a work-in-progress. It's
|
|
always good to get feedback early, so don't be afraid to open the PR before it's "done".
|
|
- use [checklists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments)
|
|
to indicate the tasks which need to be done, so everyone knows how close you are to done.
|
|
- add comments to the PR about things that are unclear or you would like suggestions on
|
|
|
|
Don't forget to mention in the pull request description which issue/issues are
|
|
being addressed.
|
|
|
|
Some things that will increase the chance that your pull request is accepted.
|
|
|
|
* Follow existing code conventions. Most of what we do follows [standard .NET
|
|
conventions](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) except in a few places. We include a ReSharper team settings file.
|
|
* Include unit tests that would otherwise fail without your code, but pass with
|
|
it.
|
|
* Update the documentation, the surrounding one, examples elsewhere, guides,
|
|
whatever is affected by your contribution
|
|
|
|
# Additional Resources
|
|
|
|
* [Octokit Codebase Overview](https://github.com/octokit/octokit.net/blob/master/OVERVIEW.md)
|
|
* [General GitHub documentation](http://help.github.com/)
|