GitHub

Build Status Coverage Status Latest Version

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

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