UNPKG

github-star

Version:

Star, unstar, or check if you starred a repository or the repositories associated with NPM, Bower, or Meteor package file dependencies on GitHub

342 lines (275 loc) 13.9 kB
# github-star Star, unstar, or check if you starred a repository or the repositories associated with NPM, Bower, or Meteor package file dependencies on GitHub ## CLI #### Installation ``` npm i -g github-star ``` #### Usage githubstar [options] -h, --help output usage information -V, --version output the version number -s, --repostar star a GitHub repository -u, --repounstar unstar a GitHub repository -i, --repoisstarred check if a GitHub repository is starred -S, --depsstar star dependencies in an NPM, Bower, or Meteor package file on GitHub -U, --depsunstar unstar dependencies in an NPM, Bower, or Meteor package file on GitHub -A, --depsarestarred check if dependencies in an NPM, Bower, or Meteor package file are starred on GitHub -d, --skipdeps skip dependencies (has no effect when --package is supplied, or when --depspath is supplied and it is a Meteor package file) -D, --skipdevdeps skip devDependencies (has no effect when --package is supplied, or when --depspath is supplied and it is a Meteor package file) -z, --skipself skip repos belonging to --username (or the GITHUB_USERNAME environment variable) when supplying --depsstar, --depsunstar, or --depsarestarred -x, --skipauthor <x> an author to skip when supplying --depsstar, --depsunstar, or --depsarestarred (repeatable) -X, --skiprepo <X> a repo to skip when supplying --depsstar, --depsunstar, or --depsarestarred (repeatable) -P, --package <P> an NPM, Bower, or Atmosphere dependency (repeatable; must be supplied when not using --depspath) -n, --username <n> a GitHub username (may be ommitted if the GITHUB_USERNAME environment variable is set) -t, --token <t> a GitHub personal access token or password belonging to --username (may be ommitted if GITHUB_TOKEN environment variable is set) -p, --password <p> a GitHub password or personal access token belonging to --username (may be ommitted if GITHUB_TOKEN environment variable is set) -a, --author <a> a GitHub author (must be supplied when providing --repostar, --repounstar, or --repoisstarred) -r, --repo <r> a repository belonging to --author (must be supplied when providing --repostar, --repounstar, or --repoisstarred) -j, --depspath <j> a path to an NPM, Bower, or Meteor package file (must be supplied when not providing --package) -T, --type <T> the package manager associated with --depspath or --package: NPM, Bower, or Atmosphere (case-insensitive; must be supplied for NPM or Bower dependencies when providing --package; must be supplied for Bower dependencies when providing --depspath, unless the file name is "bower.json") __Examples__ Manually supply a username / password and star a single repo: ``` githubstar -u user -p password -s -a sindresorhus -r package-json ``` Authenticate using environment variables and star all of the dependencies in a `package.json` file, skipping repositories that belong to the specified author: ``` githubstar --depsstar --depspath package.json --skipauthor npm ``` Authenticate using environment variables and check if multiple Bower packages are starred: ``` githubstar --depsarestarred -P angular -P angular-material -T bower ``` ## API `gitHubStar.repository` methods are supported in RequireJS, CommonJS, and global environments. `gitHubStar.dependencies` methods are only supported in CommonJS environments. #### GitHubStar(```username```, ```tokenOrPassword```) Instantiate github-star * string [`username`] - A GitHub username (may be omitted if the GITHUB_USERNAME environment variable is set) * string [`tokenOrPassword`] - A GitHub personal access token (recommended) or password belonging to `username` (may be omitted if the GITHUB_TOKEN environment variable is set) __Example (CommonJS)__ ``` var GitHubStar = require('github-star'), gitHubStar = GitHubStar('username', 'token'); ``` #### gitHubStar.repository.star(```author```, ```repo```, ```cb```) Star a GitHub repository * string `author` - A GitHub author * string `repo` - A repository belonging to `author` * function(null | object `err`) `cb` - A function to be executed after the repository is starred __Example__ ``` gitHubStar.repository.star('mjhasbach', 'github-star', function(err){ if (err) { console.error(err); } }); ``` #### gitHubStar.repository.unstar(```author```, ```repo```, ```cb```) Unstar a GitHub repository * string `author` - A GitHub author * string `repo` - A repository belonging to `author` * function(null | object `err`) `cb` - A function to be executed after the repository is unstarred __Example__ ``` gitHubStar.repository.unstar('lodash', 'lodash', function(err){ if (err) { console.error(err); } }); ``` #### gitHubStar.repository.isStarred(```author```, ```repo```, ```cb```) Check if a GitHub repository is starred * string `author` - A GitHub author * string `repo` - A repository belonging to `author` * function(null | object `err`, boolean `isStarred`) `cb` - A function to be executed after the repository is checked __Example__ ``` gitHubStar.repository.isStarred('gulpjs', 'gulp', function(err, isStarred){ if (err) { console.error(err); } console.log(isStarred); }); ``` #### gitHubStar.dependencies.star(```opt```, ```cb```) Star dependencies in an NPM, Bower, or Meteor package file on GitHub. * object `opt` - An options object * string [`depsPath`] - A path to an NPM, Bower, or Meteor package file. Must be supplied if `depsList` is not supplied. * array{string} [`depsList`] - An array containing NPM, Bower, or Meteor package names. Must be supplied if `depsPath` is not supplied. * boolean [`dependencies`] - If false, dependencies will not be starred. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * boolean [`devDependencies`] - If false, devDependencies will not be starred. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * string [`type`] - The package manager associated with `depsPath` or `depsList`: "NPM", "Bower", or "Atmosphere" (case-insensitive). Must be supplied for NPM or Bower dependencies when providing `depsList`. Must be supplied for Bower dependencies when providing `depsPath`, unless the file name is "bower.json". * boolean [`skipSelf`] - Skip repos belonging to `username` if true * array{string} [`skippedAuthors`] - Authors to skip * array{string} [`skippedRepos`] - Repos to skip * function(null | object `err`, object{boolean} `wereStarred`) `cb` - A function to be executed after the dependencies are starred. Errors for individual dependencies (e.g. not found on package manager) will be `Error` objects in the wereStarred object. __Example__ ``` // Using depsPath gitHubStar.dependencies.star({ depsPath: './some_file.json', dependencies: true, devDependencies: false, type: "Bower", skipSelf: true, skippedAuthors: ['angular', 'jquery'], skippedRepos: ['lodash', 'backbone'] }, function(err, wereStarred){ if (err) { console.error(err); } _.each(wereStarred, function(wasStarred, dependency) { if (wasStarred instanceof Error) { console.error(wasStarred); return; } console.log(dependency + ' was ' + (wasStarred ? '' : 'not ') + 'starred'); }); }); // Using depsList gitHubStar.dependencies.star({ depsList: [ 'flemay:less-autoprefixer', 'stevezhu:lodash', 'suxez:jquery-serialize-object' ], type: "Atmosphere", skippedAuthors: ['flemay'], skippedRepos: ['lodash'] }, function(err, wereStarred){ if (err) { console.error(err); } _.each(wereStarred, function(wasStarred, dependency) { if (wasStarred instanceof Error) { console.error(wasStarred); return; } console.log(dependency + ' was ' + (wasStarred ? '' : 'not ') + 'starred'); }); }); ``` #### gitHubStar.dependencies.unstar(```opt```, ```cb```) Unstar dependencies in an NPM, Bower, or Meteor package file on GitHub. * object `opt` - An options object * string [`depsPath`] - A path to an NPM, Bower, or Meteor package file. Must be supplied if `depsList` is not supplied. * array{string} [`depsList`] - An array containing NPM, Bower, or Meteor package names. Must be supplied if `depsPath` is not supplied. * boolean [`dependencies`] - If false, dependencies will not be unstarred. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * boolean [`devDependencies`] - If false, devDependencies will not be unstarred. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * string [`type`] - The package manager associated with `depsPath` or `depsList`: "NPM", "Bower", or "Atmosphere" (case-insensitive). Must be supplied for NPM or Bower dependencies when providing `depsList`. Must be supplied for Bower dependencies when providing `depsPath`, unless the file name is "bower.json". * boolean [`skipSelf`] - Skip repos belonging to `username` if true * array{string} [`skippedAuthors`] - Authors to skip * array{string} [`skippedRepos`] - Repos to skip * function(null | object `err`, object{boolean} `wereUnstarred`) `cb` - A function to be executed after the dependencies are unstarred. Errors for individual dependencies (e.g. not found on package manager) will be `Error` objects in the wereUnstarred object. __Example__ ``` // Using depsPath gitHubStar.dependencies.unstar({ depsPath: './some_file.json', dependencies: true, devDependencies: false, type: "Bower", skipSelf: true, skippedAuthors: ['angular', 'jquery'], skippedRepos: ['lodash', 'backbone'] }, function(err, wereUnstarred){ if (err) { console.error(err); } _.each(wereUnstarred, function(wasUnstarred, dependency) { if (wasUnstarred instanceof Error) { console.error(wasUnstarred); return; } console.log(dependency + ' was ' + (wasUnstarred ? '' : 'not ') + 'unstarred'); }); }); // Using depsList gitHubStar.dependencies.unstar({ depsList: [ 'flemay:less-autoprefixer', 'stevezhu:lodash', 'suxez:jquery-serialize-object' ], type: "Atmosphere", skippedAuthors: ['flemay'], skippedRepos: ['lodash'] }, function(err, wereUnstarred){ if (err) { console.error(err); } _.each(wereUnstarred, function(wasUnstarred, dependency) { if (wasUnstarred instanceof Error) { console.error(wasUnstarred); return; } console.log(dependency + ' was ' + (wasUnstarred ? '' : 'not ') + 'unstarred'); }); }); ``` #### gitHubStar.dependencies.areStarred(```opt```, ```cb```) Check if dependencies in an NPM, Bower, or Meteor package file are starred on GitHub. * object `opt` - An options object * string [`depsPath`] - A path to an NPM, Bower, or Meteor package file. Must be supplied if `depsList` is not supplied. * array{string} [`depsList`] - An array containing NPM, Bower, or Meteor package names. Must be supplied if `depsPath` is not supplied. * boolean [`dependencies`] - If false, dependencies will not be checked. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * boolean [`devDependencies`] - If false, devDependencies will not be checked. Has no effect when `depsList` is supplied, or when `depsPath` is supplied and it is a Meteor package file. * string [`type`] - The package manager associated with `depsPath` or `depsList`: "NPM", "Bower", or "Atmosphere" (case-insensitive). Must be supplied for NPM or Bower dependencies when providing `depsList`. Must be supplied for Bower dependencies when providing `depsPath`, unless the file name is "bower.json". * boolean [`skipSelf`] - Skip repos belonging to `username` if true * array{string} [`skippedAuthors`] - Authors to skip * array{string} [`skippedRepos`] - Repos to skip * function(null | object `err`, object{boolean} `areStarred`) `cb` - A function to be executed after the dependencies are checked. Errors for individual dependencies (e.g. not found on package manager) will be `Error` objects in the areStarred object. __Example__ ``` // Using depsPath gitHubStar.dependencies.areStarred({ depsPath: './some_file.json', dependencies: true, devDependencies: false, type: "Bower", skipSelf: true, skippedAuthors: ['angular', 'jquery'], skippedRepos: ['lodash', 'backbone'] }, function(err, areStarred){ if (err) { console.error(err); } _.each(areStarred, function(isStarred, dependency) { if (isStarred instanceof Error) { console.error(isStarred); return; } console.log(dependency + ' is ' + (isStarred ? '' : 'not ') + 'starred'); }); }); // Using depsList gitHubStar.dependencies.areStarred({ depsList: [ 'flemay:less-autoprefixer', 'stevezhu:lodash', 'suxez:jquery-serialize-object' ], type: "Atmosphere", skippedAuthors: ['flemay'], skippedRepos: ['lodash'] }, function(err, areStarred){ if (err) { console.error(err); } _.each(areStarred, function(isStarred, dependency) { if (isStarred instanceof Error) { console.error(isStarred); return; } console.log(dependency + ' is ' + (isStarred ? '' : 'not ') + 'starred'); }); }); ``` # Installation ### Npm ``` npm i github-star ``` ### Bower ``` bower i github-star ``` # Testing ``` npm test ```