ghrepos
Interact with the GitHub repos API
Last updated 10 years ago by rvagg .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ gnpm install ghrepos 
SYNC missed versions from official npm registry.

ghrepos

Build Status

A node library to interact with the GitHub repos API

NPM

See also:

API

listUser(auth[, user][, options], callback)

List all repos for a user. If user and options are omitted the current user is assumed.

List all repos for user 'rvagg':

const ghrepos     = require('ghrepos')
    , authOptions = { user: 'rvagg', token: '24d5dee258c64aef38a66c0c5eca459c379901c2' }

ghrepos.listUser(authOptions, 'rvagg', function (err, repolist) {
  console.log(reposlist)
})

listOrg(auth, org[, options], callback)

List all repos for a organisation. If org and options are omitted the current org is assumed.

List all repos for org 'nodejs':

const ghrepos     = require('ghrepos')
    , authOptions = { user: 'rvagg', token: '24d5dee258c64aef38a66c0c5eca459c379901c2' }

ghrepos.listOrg(authOptions, 'nodejs', function (err, repolist) {
  console.log(reposlist)
})

listRefs(auth, org, repo[, options], callback)

Get git ref data for all refs in a repo.

Get all ref data for nodejs/node repo:

ghrepos.listRefs(authOptions, 'nodejs', 'node', function (err, refData) {
  // data containing ref information including sha and github url
  console.log(refData)
})

listBranches(auth, org, repo[, options], callback)

List git branches for a repo.

Get all branches for nodejs/node repo:

ghrepos.listBranches(authOptions, 'nodejs', 'node', function (err, refData) {
  // data containing branch information including sha and github API url
  console.log(refData)
})

listCommits(auth, org, repo[, options], callback)

List git commits for a repo.

Get all commits for nodejs/node repo:

ghrepos.listCommits(authOptions, 'nodejs', 'node', function (err, refData) {
  // data containing commit information including sha and github API url
  console.log(refData)
})

listTags(auth, org, repo[, options], callback)

List git tags for a repo.

Get all tag for nodejs/node repo:

ghrepos.listTags(authOptions, 'nodejs', 'node', function (err, refData) {
  // data containing tag information including sha and github API url
  console.log(refData)
})

getRef(auth, org, repo, ref[, options], callback)

Get git ref data for a particular ref string.

Get git ref data for v1.x branch in nodejs/node repo:

ghrepos.getRef(authOptions, 'nodejs', 'node', 'heads/v1.x', function (err, refData) {
  // data containing ref information including sha and github url
  console.log(refData)
})

getBranch(auth, org, repo, branch[, options], callback)

Get git branch data for a given branch name

Get git branch data for v1.x branch in nodejs/node repo:

ghrepos.getBranch(authOptions, 'nodejs', 'node', 'v1.x', function (err, refData) {
  // data containing branch information including sha and github API url
  console.log(refData)
})

getCommit(auth, org, repo, sha1[, options], callback)

Get git commit data for a given sha1

Get git commit data for sha1 75318e46b in nodejs/node repo:

ghrepos.getCommit(authOptions, 'nodejs', 'node', '75318e46b', function (err, refData) {
  // data containing commit information including sha and github API url
  console.log(refData)
})

getCommitComments(auth, org, repo, sha1[, options], callback)

Get git commit comments data for a given sha1

Get git commit comments data for sha1 75318e46b in nodejs/node repo:

ghrepos.getCommitComments(authOptions, 'nodejs', 'node', '75318e46b', function (err, comments) {
  // array containing commit comments information
  console.log(JSON.stringify(comments.map(function (i) {
    return { user: i.user.login, body: i.body }
  }), null, 2))
})

Yields:

[
  {
    "user": "Trott",
    "body": "@cjihrig There's no PR-URL on this commit message. (`core-validate-commit` FTW as usual!)"
  },
  {
    "user": "mscdex",
    "body": "PR-URL is: https://github.com/nodejs/node/pull/15745"
  }
]

createLister(type)

Creates a function that lists different sub types related to the '/repos' api, e.g. list 'issues', 'pulls' or 'releases'. The function returned has the signature: function list (auth, org, repo, options, callback).

More methods coming .. as I need them or as you PR them in.

The auth data is compatible with ghauth so you can just connect them together to make a simple command-line application:

const ghauth     = require('ghauth')
    , ghrepos    = require('ghrepos')
    , authOptions = {
          configName : 'lister'
        , scopes     : [ 'user' ]
      }

ghauth(authOptions, function (err, authData) {
  ghrepos.listUser(authData, 'rvagg', function (err, list) {
    console.log('Repos for rvagg:')
    console.log(util.inspect(list.map(function (i) { return {
        name: i.name
      , desc: i.description
      , fork: i.fork
    }})))
  })
})

License

ghrepos is Copyright (c) 2015 Rod Vagg @rvagg and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.

Current Tags

  • 2.1.0                                ...           latest (7 years ago)

15 Versions

  • 2.1.0                                ...           7 years ago
  • 2.0.0                                ...           9 years ago
  • 1.5.0                                ...           9 years ago
  • 1.4.0                                ...           9 years ago
  • 1.3.1                                ...           9 years ago
  • 1.3.0                                ...           9 years ago
  • 1.2.0                                ...           9 years ago
  • 1.1.1                                ...           9 years ago
  • 1.1.0                                ...           9 years ago
  • 1.0.5                                ...           10 years ago
  • 1.0.4                                ...           10 years ago
  • 1.0.3                                ...           10 years ago
  • 1.0.2                                ...           10 years ago
  • 1.0.1                                ...           10 years ago
  • 1.0.0                                ...           10 years ago
Maintainers (2)
Downloads
Today 0
This Week 0
This Month 8
Last Day 0
Last Week 8
Last Month 0
Dependencies (2)
Dev Dependencies (3)
  • bl >=0.9.4 <0.10.0-0
  • faucet >=0.0.1 <0.1.0-0
  • tape >=4.0.0 <4.1.0-0
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |