LibHub
Libraries.io minimalistic GitHub client.
Features
Requirements
Getting Started
const Client = require('libhub')
let github = new Client(token)
github.get(`/repos/librariesio/libhub/issues`)
.then( (issues) => {
console.log(issues)
})
github.post(`/repos/librariesio/libhub/issues`, {}, issueBody)
.then( (issue) => {
console.log(issue)
})
Available methods: get
, post
, patch
, put
, delete
Error handling
github.get(`/repos/librariesio/${invalidId}`)
.then( (repo) => {
})
.catch( (err) => {
console.log(err.statusCode)
})
Caching
The Client constructor takes an optional cache object that should have a get
and a set
method. Both should return a Promise.
const Client = require('libhub')
const InMemoryCache = require('./test/cache')
let github = new Client(token, { cache: InMemoryCache })
github.get(`/repos/librariesio/libhub/issues`)
.then( (issues) => {
console.log(issues)
})
github.get(`/events`, { allPages: true })
.then( (events) => {
console.log(events.length)
})
Why another GitHub client?
Well, simplicity. Most GitHub clients I used implement unnecessary abstractions. For example, octonode. This means that you need to check GitHub API documentation and Octonode documentation to perform any action. This gets boring pretty quickly.
With LibHub, you just need to lookup the resource URL and use it. Also, ES6 interpolation.
github.get(`/repos/${owner}/${repo}/branches/${branch}`)
License
MIT