github

Wrapper for the Github API api github
0.2.0 released

crystal-github

Build Status

Github API wrapper in Crystal! (work in progress)

Installation

Add this to your application's shard.yml:

dependencies:
  github:
    github: felipeelias/crystal-github
    version: ~> 0.1.0

Usage

On your application code, require it with:

require "github"

OAuth2 Flow

For now, this client only supports OAuth2 flow to make requests to Github API. To get this working, you need to register a new application and setup the proper attributes.

oauth2 = Github::OAuth2.new(client_id, client_secret, redirect_uri)

With that, you can build the authorization_uri and redirect your users to that

oauth2.authorize_uri
# => https://github.com/login/oauth/authorize...

If the user authorizes your application, you should be redirected back to the redirect_uri that you set up previously, with a code parameter in the URI

# if you're using kemal
code = env.params.query["code"]

token = oauth2.access_token(code)
# => OAuth2::AccessToken is returned

token.access_token
# => "53gdf31mnv..."

You can then use the access_token to authorize users with other API requests.

Users API

NOTE: subject to change

api = Github::UserApi.new(token.access_token)
user = api.user
# => {"login" => ..., "avatar_url" => ...}

Development

Run tests with:

crystal spec

You can test it locally with other apps by adding it to your shards.yml

dependencies:
  github:
    path: path/to/crystal-github

Contributing

  1. Create an issue on Github first, describing the feature or fix you'd like to add.
  2. If nobody is working on the issue, feel free to fork and send a pull-request

Contributors

github:
  github: felipeelias/crystal-github
  version: ~> 0.2.0
License MIT
Crystal 0.22.0

Authors

Dependencies 0

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently