diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 22a324164d..2993099650 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,40 +25,7 @@ easiest way to do this. You can then clone down your fork instead: After doing that, run the `.\build.cmd` script at the root of the repository to ensure all the tests pass. -### How is the codebase organised? - -The two main projects are the `Octokit` and `Octokit.Reactive` projects. - -The `Octokit.Reactive` library is a thin wrapper over the `Octokit` -library - for those who want to use Reactive Extensions (Rx) instead of tasks. - -The namespaces are organised so that the relevant components are easy to discover: - - - **Authentication** - everything related to authenticating requests - - **Clients** - the logic for interacting with various parts of the GitHub API - - **Exceptions** - types which represent exceptional behaviour from the API - - **Helpers** - assorted extensions and helpers to keep the code neat and tidy - - **Http** - the internal networking components which Octokit requires - - **Models** - types which represent request/response objects - -Unless you're modifying some core behaviour, the **Clients** and **Models** namespaces -are likely to be the most interesting areas. - -The clients within a project are organized similarly to the endpoints in the -[GitHub API documentation](http://developer.github.com/v3/) - -Some clients are "sub-clients". For example, when you navigate to the -[Issues API](http://developer.github.com/v3/issues/) you'll notice there's an -endpoint for issues. But in the right navbar, there are other APIs such as -[Assignees](http://developer.github.com/v3/issues/assignees/) and -[Milestones](http://developer.github.com/v3/issues/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`. - -### What needs to be done? +### 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. @@ -141,4 +108,5 @@ Some things that will increase the chance that your pull request is accepted. # Additional Resources +* [Octokit Codebase Overview](https://github.com/octokit/octokit.net/blob/master/OVERVIEW.md) * [General GitHub documentation](http://help.github.com/) diff --git a/OVERVIEW.md b/OVERVIEW.md new file mode 100644 index 0000000000..8276639b83 --- /dev/null +++ b/OVERVIEW.md @@ -0,0 +1,32 @@ +### How is the codebase organised? + +The two main projects are the `Octokit` and `Octokit.Reactive` projects. + +The `Octokit.Reactive` library is a thin wrapper over the `Octokit` +library - for those who want to use Reactive Extensions (Rx) instead of tasks. + +The namespaces are organised so that the relevant components are easy to discover: + + - **Authentication** - everything related to authenticating requests + - **Clients** - the logic for interacting with various parts of the GitHub API + - **Exceptions** - types which represent exceptional behaviour from the API + - **Helpers** - assorted extensions and helpers to keep the code neat and tidy + - **Http** - the internal networking components which Octokit requires + - **Models** - types which represent request/response objects + +Unless you're modifying some core behaviour, the **Clients** and **Models** namespaces +are likely to be the most interesting areas. + +The clients within a project are organized similarly to the endpoints in the +[GitHub API documentation](http://developer.github.com/v3/) + +Some clients are "sub-clients". For example, when you navigate to the +[Issues API](http://developer.github.com/v3/issues/) you'll notice there's an +endpoint for issues. But in the right navbar, there are other APIs such as +[Assignees](http://developer.github.com/v3/issues/assignees/) and +[Milestones](http://developer.github.com/v3/issues/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`.