* bugfix - PUT should have a payload for Mark as Read (#1579) * bugfix - PUT should have a payload for Mark as Read * also fix the Observable client test * add integration tests for MarkRead methods * Fixup MarkReadForRepository methods to specify a body in the PUT request * Fix unit tests for regular and observable client * helps if the new files are included in the test project :) * Cloning ApiInfo object should work when some fields are null (#1580) * Adjust ApiInfo.Clone() to work even if some elements (eg ETag) are null * Remove c# 6 language feature and do it the old school way * Add a test for cloning ApiInfo when some fields are null * The 3 lists can never be null anyway so remove some un-needed statements * Add test for null RateLimit * Remove Rx-Main dependency from samples This resolves #1592 - LINQPad doesn't understand how to restore this unlisted package and it's not actually needed in the samples. * Adding RemovedFromProject and other missing EventInfoState types. (#1591) * Adding missing review types to event info. * Fixing whitespace. * Reword `BaseRefChanged` comment * Adding missing event types. * Change response models 'Url' properties from `Uri` to `string` (#1585) * Add convention test to ensure 'Url' properties are of type string Closes #1582 * Change 'Url' properties from Uri to string Global Find/Replace FTW! * fix compilation errors in the integration tests project * Extend 'Url' properties type check to request models * Stick to convention tests naming convention * Remove unused using directives in models Changing from `Uri` to `string` means the `using System;` directive was not needed anymore in some files * Update exception message wording * empty commit to trigger a new build - hopefully Travis passes * add convention test to ensure request models have Uri 'Url' properties * make request models 'Url' properties Uri fix typo in convention test name * revert some request models 'Url' properties as `string` see https://github.com/octokit/octokit.net/pull/1585#issuecomment-297186728 * Change test so that all model types must have 'Url' properties of type string - Filter test input to only get types which have 'Url' properties - Merge response and request model types tests into one - Unparameterize the exception since we only check for the string type now * Fix string.Format tokens If this PR doesn't get rebased, it'll be my wall of shame FOREVER! * and then it's even more embarrassing when the commit message says rebased but you really meant squashed * Remove exclusion of `Release` from request models
Octokit - GitHub API Client Library for .NET
Octokit is a client library targeting .NET 4.5 and above that provides an easy way to interact with the GitHub API.
Usage examples
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!");
Supported Platforms
- .NET 4.5 (Desktop / Server)
- Xamarin.iOS / Xamarin.Android / Xamarin.Mac
- Mono 3.x
- Windows 8 / 8.1 Store Apps
Getting Started
Octokit is available on NuGet.
Install-Package Octokit
or an IObservable based GitHub API client library for .NET using Reactive Extensions
Install-Package Octokit.Reactive
Beta packages
Unstable NuGet packages that track the master branch of this repository are available at https://ci.appveyor.com/nuget/octokit-net
In Xamarin Studio you can find this option under the project's context menu: Add | Add Packages...*.
Documentation
Documentation is available at http://octokitnet.readthedocs.io/en/latest/.
Build
Octokit is a single assembly designed to be easy to deploy anywhere. If you prefer to compile it yourself, you’ll need:
- Visual Studio 2015 or Xamarin Studio
- Windows 8.1 or higher to build and test the WinRT projects
To clone it locally click the "Clone in Desktop" button above or run the following git commands.
git clone git@github.com:octokit/Octokit.net.git Octokit
cd Octokit
.\build.cmd
Contribute
Visit the Contributor Guidelines for more details. All contributors are expected to follow our Code of Conduct.
Problems?
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.
Related Projects
- ScriptCs.OctoKit - a script pack to use Octokit in scriptcs
- ScriptCs.OctokitLibrary - a script library to use Octokit in scriptcs
Copyright and License
Copyright 2013 GitHub, Inc.
Licensed under the MIT License
