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
-
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
-
Run
shards install
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.
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.
- Apps
- Authorizations
- Checks
- CommitComments
- Commits
- CommunityProfile
- Contents
- Deployments
- Downloads
- Emojis
- Events
- Feeds
- Gists
- Gitignore
- Hooks
- Issues
- Labels
- LegacySearch
- Licenses
- Markdown
- Marketplace
- Meta
- Milestones
- Notifications
- Objects
- Organizations
- Pages
- Projects
- PubSubHubbub
- PullRequests
- RateLimit
- Reactions
- Refs
- Releases
- Repositories
- RepositoryInvitations
- Reviews
- Say
- Search
- ServiceStatus
- SourceImport
- Stats
- Statuses
- Traffic
- Users
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.
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!
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
- Grant Birkinbine
- Chris Watson - original creator and maintainer
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.