Skip to content

octokit-cr/octokit.cr

Repository files navigation

octokit

test lint acceptance

Crystal toolkit for the GitHub API.

Note: This is in the very early stages of development. The GitHub API is expansive and there is a lot to do to get this up and running. For a list of API connections that have been completed and are still to come, see the Roadmap

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      octokit:
        github: octokit-cr/octokit.cr

    You can pin it to a release tag or a commit for extra stability

  2. Run shards install

Usage

require "octokit"

# Create a new Octokit Client
# Your password should be your Personal Access Token (PAT)
github = Octokit.client("grantbirki", "PASSWORD")

# Also, you can authenticate this way:
# github = Octokit.client("grantbirki", access_token: "PAT")

# Fetch information about the logged in user
pp github.user

# Fetch information about another user
pp github.user("watzon")

There are way too many options to list here, even at this early stage. For more usage examples see the documentation.

Roadmap

There are a lot of pieces of the GitHub API to cover. Here are the ones that need to be working before this shard is considered v1.0 ready.

I am trying to complete what I deem the most important ones first so that this shard can be immediately useful. Keep in mind, however, that the API may change at any time.

Contributing

I don't only welcome contributions, I beg for them. If this is a library that might help you out please, help me by forking this repo and porting one of the many APIs that's not checked above. Thank you!

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Thanks

Thanks to all of the maintainers of octokit/octokit.rb who made this so much easier on me. This library is a port of the ruby library and I've tried to keep the APIs as similar as possible.