Octokit is a client library targeting .NET 4.5 and above that provides an easy way to interact with the GitHub API.
Get public info on a specific user.
var github = new GitHubClient(new ProductHeaderValue("MyAmazingApp"));
var user = await github.User.Get("half-ogre");
Console.WriteLine(user.Followers + " folks love the half ogre!");
- .NET 4.5 (Desktop / Server)
- Xamarin.iOS / Xamarin.Android / Xamarin.Mac
- Mono 3.x
- Windows 8 / 8.1 Store Apps
Octokit is available on NuGet.
Install-Package Octokit
Octokit is a single assembly designed to be easy to deploy anywhere. If you prefer to compile it yourself, you’ll need:
- Visual Studio 2012 or later, or Xamarin Studio
- Windows 8 or higher to build and test the WinRT projects
To clone it locally click the "Clone in Windows" button above or run the following git commands.
git clone [email protected]:octokit/Octokit.net.git Octokit
cd Octokit
.\build.cmd
Octokit has integration tests that access the GitHub API, but they must be configured before they will be executed. To configure the tests, create a test GitHub account (i.e., don't use your real GitHub account) and then set the following two environment variables:
OCTOKIT_GITHUBUSERNAME
(set this to the test account's username)OCTOKIT_GITHUBPASSWORD
(set this to the test account's password)
Once both of these are set, the integration tests will be executed both when
running the FullBuild
MSBuild target, and when running the
Octokit.Tests.Integration
assembly through an xUnit.net-friendly test runner.
The builds and tests for Octokit.net are run on qed. This enables us to build and test incoming pull requests: http://half-ogre-qed.cloudapp.net/octokit/octokit.net
Octokit is 100% certified to be bug free. If you find an issue with our certification, please visit the issue tracker and report the issue.
Please be kind and search to see if the issue is already logged before creating a new one. If you're pressed for time, log it anyways.
When creating an issue, clearly explain
- What you were trying to do.
- What you expected to happen.
- What actually happened.
- Steps to reproduce the problem.
Also include any other information you think is relevant to reproduce the problem.
Visit the Contributor Guidelines for more details.
There are two primary projects in the solution: Octokit.csproj
and
Octokit.Reactive.csproj
.
The first is the task-based library. The second is a wrapper that provides an Reactive Extensions (Rx) based library.
The clients within a project are organized similarly to the endpoints in the GitHub API documentation
Some clients are "sub-clients". For example, when you navigate to the Issues API you'll notice there's an endpoint for issues. But in the right navbar, there are other APIs such as Assignees and Milestones.
We've tried to mirror this structure. So the IObservableMilestoneClient
isn't
a direct property of IObservableGitHubClient
. Instead, it's a property of the
IObservableIssuesClient
. And thus you can get to it by going to
client.Issues.Milestones
.
Copyright 2013 GitHub, Inc.
Licensed under the MIT License
When we're ready to deploy a new release, we need to do the following steps.
- Create a branch named
release
. - Update
ReleaseNotes.md
. Note that the format is important as we parse the version out and use that for the NuGet packages. - Push the branch to GitHub and create a pull request. This will kick off the MyGet build of the NuGet package with this new version.
- Test!
- When you're satisfied with this release, push the package from MyGet to NuGet.
- Create a tag
git tag v#.#.#
. For example, to create a tag for 1.0.0git tag v1.0.0
- Push the tag to the server.
git push --tags
- Accept the pull request.
- Create a new release using the tag you just created and pasting in the release notes you just wrote up