Skip to content
This repository has been archived by the owner on Jan 8, 2018. It is now read-only.

librariesio/libhub

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

LibHub

⚠️ This library is no longer used by https://libraries.io or maintained ⚠️

Libraries.io minimalistic GitHub client.

Features

Requirements

  • Node.js v4.2.x

Getting Started

  const Client = require('libhub')
  let github = new Client(token)

  // GET
  github.get(`/repos/librariesio/libhub/issues`)
  .then( (issues) => {
    console.log(issues)
  })

  // POST
  github.post(`/repos/librariesio/libhub/issues`, {}, issueBody)
  .then( (issue) => {
    console.log(issue)
  })

Available methods: get, post, patch, put, delete

Error handling

  // 3xx/4xx/5xx errors
  github.get(`/repos/librariesio/${invalidId}`)
  .then( (repo) => {
    // This won't happen
  })
  .catch( (err) => {
    console.log(err.statusCode) // 404
  })

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)
  })

Pagination

  github.get(`/events`, { allPages: true })
  .then( (events) => {
    console.log(events.length) // All the user public events ~300
  })

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