* Added StringEnum<TEnum> * Added tests * Make sure the serializer can work with StringEnum * Use StringEnum for EventInfo.Event * Add convention test to assert that all Response models use StringEnum<> to wrap enum properties * Add Stringnum<> to all response types failing convention test * Handle StringEnum to Enum conversion when Issue response model populates IssueUpdate request model * Fix unit test * Refactor SimpleJsonSerializer to expose the DeserializeEnum strategy so it can be used in StringEnum class * Need to expose/use SerializeEnum functionality too, so we use the correct string representation of enum values that have custom properties (eg ReactionType Plus1 to "+1") * fix unit tests, since the string is now the "correct" upstream api value * Add a couple of tests for the Enum serialize/deserialize when underscores, hyphens and custom property attributes are present * Compare parsed values for equality * add convention test to ensure enum members all have Parameter property set * update test to cover implicit conversions too * this test should work but fails at the moment due to magic hyphen removal in deserializer causing a one way trip from utf-8 to EncodingType.Utf8 with no way to get back * (unsuccesfully) expand event info test to try to catch more cases of unknown event types * fix broken integration test while im here * Fixed build errors after .NET Core merge * Value -> StringValue, ParsedValue -> Value * Don't allow StringValue to be null * Ignore enums not used in request/response models * Added ParameterAttribute to almost all enum values * Ignore Language enum * Fix failing tests * Fix milestone sort parameter and tests * whitespace * fix milestone unit tests * Fix StringEnum.Equals ... This could've been embarrassing! * Change SimpleJsonSerializer Enum handling to only use `[Parameter()]` attributes (no more magic removal of hyphen/underscores from strings) * Tidy up this integration test while im here * Only test request/response enums in convention test * Keep skipping Language * Remove unused method * Remove excluded enum types * Removed unnecessary ParameterAttributes * Remove unused enum * Add StringEnum test for string-comparison of two invalid values * Bring back IssueCommentSort and use it in IssueCommentRequest This reverts commit 38a4a291d1476ef8c992fe0f76956974b6f32a49. * Use assembly instead of namespace for Octokit check * Add failing test to reproduce the issue where only the first enum paramter/value was added to the cache * Fix deserializer enum cache to include all enum members rather than only the first member encountered * Use a static SimpleJsonSerializer in StringEnum * Remove serializer instance in StringEnum * Add some documentation on StringEnum<TEnum> * Fix parameter value to resolve failing integration test
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
