hubcaps
a rust interface for github
docs
Find them here
usage
Basic usage requires a user-defined useragent string, a hyper::Client
instance and a flavor of hubcaps::Credentials
for authorization.
For user authenticated requests you'll typically want to use hubcaps::Credentials::Token
with a personal access token. For requests that permit anonymous access, you can subsitute hubcaps::Credentials::Token
with hubcaps::Credentials::None
extern crate hyper;
extern crate hubcaps;
use Client;
use ;
Github instances define functions for accessing api services that map closely to their url structure.
As a convention, api methods that expect arguments are represented as functions that accept a struct representing those arguments with an optional builder interface for convenience of construction.
repositories
Typically the reference point of most github services is a repository
let repo = github.repo;
With a repo instance on hand, you can access a number of sub services, like labels
, deployments
, pulls
, issues
, and releases
. Each of this are named functions exported from the repo interface.
labels
Labels is a service for tagging resources like issues and pulls with names which you can later group and filter on.
use LabelOptions;
let labels = repo.labels;
// create new labels
println!;
// list labels
for l in labels.list.unwrap
// delete labels
labels.delete.unwrap;
deployments
Deployments is a service for orchestating deployments of applications sourced from github repositories
let deployments = repo.deployments;
pulls
Pulls is a service for issuing code change requests against a repository
let pulls = repo.pulls;
issues
Issues is a service for tracking bugs for a repository
let issues = repo.issues;
releases
Releases is a service for tracking changes for a stable releases of a versioned library or application
let releases = repo.releases;
gists
Gists is a service for micro repositories
let gists = github.gists;
search
Search provides a raw string query search for indexed data. Currently only search for issues is supported
let search_issues = github.search.issues;
Doug Tangren (softprops) 2015-2016