Skip to content
This repository has been archived by the owner. It is now read-only.
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

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

README.md

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

About

🔪 Libraries.io GitHub Client

Resources

License

Packages

No packages published