master 88a56eb10f09 cached
7 files
8.4 KB
2.6k tokens
2 symbols
1 requests
Download .txt
Repository: yoshuawuyts/github-standard-labels
Branch: master
Commit: 88a56eb10f09
Files: 7
Total size: 8.4 KB

Directory structure:
gitextract_9ae108s2/

├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── bin.js
├── index.js
└── package.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
node_modules/
coverage/
tmp/
dist/
npm-debug.log*
.DS_Store
.nyc_output


================================================
FILE: .travis.yml
================================================
node_js:
- "4"
- "5"
- "6"
- "7"
sudo: false
language: node_js
script: "npm run test"
after_success: "npm i -g codecov && npm run coverage && codecov"


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2016 Yoshua Wuyts

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# github-standard-labels [![stability][0]][1]
[![npm version][2]][3] [![build status][4]][5]
[![downloads][8]][9] [![js-standard-style][10]][11]

Create a standard set of issue labels for a GitHub project

## Usage
```txt
  Usage:
    $ github-standard-labels <username> <project>

  Commands:
    <default>   Create a set of labels for a project

  Options:
    -h, --help      Print usage
    -v, --version   Print version
```

## Labels
```txt
duplicate             #ededed
greenkeeper           #ededed
starter               #ffc0cb
Priority: Critical    #ee0701
Priority: High        #d93f0b
Priority: Low         #0e8a16
Priority: Medium      #fbca04
Status: Abandoned     #000000
Status: Available     #c2e0c6
Status: Blocked       #ee0701
Status: In Progress   #cccccc
Status: On Hold       #e99695
Status: Proposal      #d4c5f9
Status: Review Needed #fbca04
Type: Bug             #ee0701
Type: Documentation   #5319e7
Type: Enhancement     #1d76db
Type: Maintenance     #fbca04
Type: Question        #cc317c
```

See what they look like on the [demo issue][12].

## API
### githubStandardLabels(opts, cb([err]))
Apply labels to a project. `opts` should be an object containing:
- __.github:__ an instance of `ghauth`
- __.username:__ the name of the project owner
- __.repo:__ the repository name

## Acknowledgements
- [Joe Hand](https://github.com/joehand/) for showing me this cool labeling scheme

## See Also
- https://developer.github.com/v3/issues/labels

## License
[MIT](https://tldrlegal.com/license/mit-license)

[0]: https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square
[1]: https://nodejs.org/api/documentation.html#documentation_stability_index
[2]: https://img.shields.io/npm/v/github-standard-labels.svg?style=flat-square
[3]: https://npmjs.org/package/github-standard-labels
[4]: https://img.shields.io/travis/yoshuawuyts/github-standard-labels/master.svg?style=flat-square
[5]: https://travis-ci.org/yoshuawuyts/github-standard-labels
[6]: https://img.shields.io/codecov/c/github/yoshuawuyts/github-standard-labels/master.svg?style=flat-square
[7]: https://codecov.io/github/yoshuawuyts/github-standard-labels
[8]: http://img.shields.io/npm/dm/github-standard-labels.svg?style=flat-square
[9]: https://npmjs.org/package/github-standard-labels
[10]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[11]: https://github.com/feross/standard
[12]: https://github.com/yoshuawuyts/github-standard-labels/issues/2


================================================
FILE: bin.js
================================================
#!/usr/bin/env node

var minimist = require('minimist')
var ghauth = require('ghauth')

var githubStandardLabels = require('./')

var argv = minimist(process.argv.slice(2), {
  boolean: [
    'version',
    'help'
  ]
})

var usage = `
  Usage:
    $ github-standard-labels <username> <project>

  Commands:
    <default>   Create a set of labels for a project

  Options:
    -h, --help      Print usage
    -v, --version   Print version
`

;(function main (argv) {
  if (argv.h) {
    return console.info(usage)
  } else if (argv.v) {
    return console.info('v' + require('./package.json').version)
  } else {
    var username = argv._[0]
    var repo = argv._[1]
    if (!username || !repo) {
      console.error('username or repo missing')
      process.exit(1)
    }
    label(username, repo)
  }
})(argv)

function label (username, repo) {
  var config = {
    configName: 'github-standard-labels',
    scopes: ['repo'],
    note: 'This is for github-standard-labels'
  }

  ghauth(config, function (err, github) {
    if (err) throw err

    var opts = {}

    opts.username = username
    opts.github = github
    opts.repo = repo

    githubStandardLabels(opts, function (err) {
      if (err) throw err
      console.info('Labels successfully applied to ' + username + '/' + repo)
    })
  })
}


================================================
FILE: index.js
================================================
var mapLimit = require('map-limit')
var request = require('request')

var colors = {
  'duplicate': 'ededed',
  'greenkeeper': 'ededed',
  'starter': 'ffc0cb',
  'Priority: Critical': 'ee0701',
  'Priority: High': 'd93f0b',
  'Priority: Low': '0e8a16',
  'Priority: Medium': 'fbca04',
  'Status: Abandoned': '000000',
  'Status: Available': 'c2e0c6',
  'Status: Blocked': 'ee0701',
  'Status: In Progress': 'cccccc',
  'Status: On Hold': 'e99695',
  'Status: Proposal': 'd4c5f9',
  'Status: Review Needed': 'fbca04',
  'Type: Bug': 'ee0701',
  'Type: Documentation': '5319e7',
  'Type: Enhancement': '1d76db',
  'Type: Maintenance': 'fbca04',
  'Type: Question': 'cc317c'
}

module.exports = githubStandardLabels

// https://developer.github.com/v3/issues/labels/
function githubStandardLabels (opts, cb) {
  var username = opts.username
  var github = opts.github
  var repo = opts.repo

  var auth = github.token + ':x-oauth-basic@'
  var uri = 'https://' + auth +
    'api.github.com/repos/' +
    username + '/' + repo + '/labels'

  var reqOpts = {
    uri: uri,
    headers: { 'User-Agent': github.user }
  }

  var labels = null
  var operations = [
    getLabels,
    cleanLabels,
    createLabels
  ]

  mapLimit(operations, 1, iterator, cb)

  function iterator (fn, cb) {
    fn(cb)
  }

  function getLabels (done) {
    request(reqOpts, function (err, res, body) {
      if (err) return done(err)
      if (res.statusCode !== 200) {
        return done(new Error('non-200 statusCode received. ' + body))
      }
      if (!body) return done(new Error('no body returned'))

      try {
        labels = JSON.parse(body)
      } catch (e) {
        return done(e)
      }

      done()
    })
  }

  function cleanLabels (done) {
    mapLimit(labels, 1, iterator, done)

    function iterator (label, done) {
      var opts = {
        uri: uri + '/' + label.name,
        headers: { 'User-Agent': github.user }
      }
      request.del(opts, function (err, res, body) {
        if (err) return done(err)
        if (res.statusCode !== 204) {
          return done(new Error('non-204 statusCode received. ' + body))
        }
        done()
      })
    }
  }

  function createLabels (done) {
    mapLimit(Object.keys(colors), 1, iterator, done)
    function iterator (name, done) {
      var color = colors[name]
      var opts = {
        uri: uri,
        headers: { 'User-Agent': github.user }
      }
      var req = request.post(opts, function (err, res, body) {
        if (err) return done(err)
        if (res.statusCode !== 201) {
          return done(new Error('non-201 statusCode received. ' + body))
        }
        done()
      })

      req.end(JSON.stringify({
        name: name,
        color: color
      }))
    }
  }
}


================================================
FILE: package.json
================================================
{
  "name": "github-standard-labels",
  "description": "Create a standard set of issue labels for a GitHub project",
  "repository": "yoshuawuyts/github-standard-labels",
  "version": "1.1.2",
  "scripts": {
    "deps": "dependency-check . && dependency-check . --extra --no-dev",
    "start": "node .",
    "test": "standard && npm run deps"
  },
  "dependencies": {
    "ghauth": "^3.2.1",
    "map-limit": "0.0.1",
    "minimist": "^1.2.0",
    "request": "^2.79.0"
  },
  "devDependencies": {
    "dependency-check": "^2.8.0",
    "nyc": "^10.1.2",
    "standard": "^8.6.0",
    "tape": "^4.6.3"
  },
  "keywords": [
    "github",
    "label/\u001b[D"
  ],
  "bin": {
    "github-standard-labels": "./bin.js"
  }
}
Download .txt
gitextract_9ae108s2/

├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── bin.js
├── index.js
└── package.json
Download .txt
SYMBOL INDEX (2 symbols across 2 files)

FILE: bin.js
  function label (line 43) | function label (username, repo) {

FILE: index.js
  function githubStandardLabels (line 29) | function githubStandardLabels (opts, cb) {
Condensed preview — 7 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9K chars).
[
  {
    "path": ".gitignore",
    "chars": 72,
    "preview": "node_modules/\ncoverage/\ntmp/\ndist/\nnpm-debug.log*\n.DS_Store\n.nyc_output\n"
  },
  {
    "path": ".travis.yml",
    "chars": 151,
    "preview": "node_js:\n- \"4\"\n- \"5\"\n- \"6\"\n- \"7\"\nsudo: false\nlanguage: node_js\nscript: \"npm run test\"\nafter_success: \"npm i -g codecov &"
  },
  {
    "path": "LICENSE",
    "chars": 1079,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 Yoshua Wuyts\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "README.md",
    "chars": 2499,
    "preview": "# github-standard-labels [![stability][0]][1]\n[![npm version][2]][3] [![build status][4]][5]\n[![downloads][8]][9] [![js-"
  },
  {
    "path": "bin.js",
    "chars": 1306,
    "preview": "#!/usr/bin/env node\n\nvar minimist = require('minimist')\nvar ghauth = require('ghauth')\n\nvar githubStandardLabels = requi"
  },
  {
    "path": "index.js",
    "chars": 2756,
    "preview": "var mapLimit = require('map-limit')\nvar request = require('request')\n\nvar colors = {\n  'duplicate': 'ededed',\n  'greenke"
  },
  {
    "path": "package.json",
    "chars": 719,
    "preview": "{\n  \"name\": \"github-standard-labels\",\n  \"description\": \"Create a standard set of issue labels for a GitHub project\",\n  \""
  }
]

About this extraction

This page contains the full source code of the yoshuawuyts/github-standard-labels GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7 files (8.4 KB), approximately 2.6k tokens, and a symbol index with 2 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!