Skip to content

Commit

Permalink
extract OVERVIEW.md document which introduces the overall Octokit cod…
Browse files Browse the repository at this point in the history
…ebase
  • Loading branch information
shiftkey committed Mar 14, 2016
1 parent ca025b9 commit 692a4cb
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
36 changes: 2 additions & 34 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand 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/)
32 changes: 32 additions & 0 deletions OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 692a4cb

Please sign in to comment.