GitHub
The simplest Elixir client for GitHub REST API v3.
Contents
Usage
Github library supports multiple API Resources.
For example, Github.Users.Emails.list! allows getting user's emails:
iex> client = %Github.Client{access_token: "access_token"}
iex> client |> Github.Users.Emails.list!()
%Github.Client.Response{
status: 200,
headers: [
{"Server", "GitHub.com"},
...
],
body: [
%{"email" => "hello@workflowci.com", "primary" => true, "verified" => true, "visibility" => "public"},
...
],
...
}
Pagination
For pagination, the client has such functions as Github.Client.fetch_more! and Github.Client.fetch_all!. Here is an example:
iex> client = %Github.Client{access_token: "access_token"}
iex> first_page = client |> Github.Users.Emails.list!(page: 1, per_page: 1)
%Github.Client.Response{
status: 200,
headers: [...],
body: [...],
next_page: 2,
last_page: 3,
next_url: "https://api.github.com/user/emails?page=2&per_page=1",
last_url: "https://api.github.com/user/emails?page=3&per_page=1",
...
}
iex> Github.Client.fetch_more!(first_page)
%Github.Client.Response{
status: 200,
headers: [...],
body: [...],
next_page: 3,
last_page: 3,
next_url: "https://api.github.com/user/emails?page=3&per_page=1",
last_url: "https://api.github.com/user/emails?page=3&per_page=1",
...
}
Please visit hexdocs.pm/github to find more code examples.
API Resources
- Apps
- Git
- Organizations
- Repositories
- Pull Requests
- Users
Installation
The package can be installed by adding github to your list of dependencies in mix.exs:
def deps do
[
{:github, "~> 0.9.0"}
]
end
Testing
mix deps.get
mix test