shields-badge-url-github-social

1.0.0 • Public • Published

Github Social Badge URLs

NPM version Build Status Coverage Status Dependencies

Creates Shields.io badge URLs for Github social badges.

Installation

$ npm install shields-badge-url-github-social

Usage

var urls = require( 'shields-badge-url-github-social' );

urls( opts )

Creates Shields.io badge URLs for Github social badges.

var opts = {
    'owner': 'dstructs',
    'repo': 'matrix'
};
 
var out = urls( opts );
/*
    {
        "image": "https://img.shields.io/github/stars/dstructs/matrix.svg?style=social&label=Star&link=https://github.com/dstructs/matrix&link=https://github.com/dstructs/matrix/stargazers",
        "url": "https://github.com/dstructs/matrix"
    }
*/ 

The function accepts the following options:

  • owner: repository owner (required).
  • repo: repository name (required).
  • action: social action. Supported actions:
    • star: repository stars (default)
    • fork: repository forks
    • watch: repository watchers
  • style: badge style. Default: social.
  • format: badge format. Default: svg.

Examples

var getKeys = require( 'object-keys' ).shim();
var url = require( 'url' );
var list = require( 'npm-list-author-packages' );
var repoUrls = require( 'npm-repo-url' );
var badgeUrls = require( 'shields-badge-url-github-social' );
 
// Generate badge URLs for all of an author's packages...
list( {'username': 'kgryte'}, onList );
 
function onList( error, list ) {
    var opts;
    if ( error ) {
        throw error;
    }
    if ( !list.length ) {
        return;
    }
    opts = {
        'packages': list
    };
    repoUrls( opts, onUrls );
}
 
function onUrls( error, results ) {
    var badge;
    var parts;
    var urls;
    var pkgs;
    var path;
    var i;
    if ( error ) {
        throw error;
    }
    urls = results.data;
    pkgs = getKeys( urls );
 
    // Note: we assume all repository URLs are of the form: git://github.com/{{owner}}/{{repo}}.git
    for ( i = 0; i < pkgs.length; i++ ) {
        parts = url.parse( urls[ pkgs[i] ] );
        path = parts.pathname.split( '/' );
        badge = badgeUrls({
            'owner': path[ 1 ],
            'repo': path[ 2 ].slice( 0, -4 )
        });
        console.log( badge );
    }
}

To run the example code from the top-level application directory,

$ node ./examples/index.js

CLI

Installation

To use the module as a general utility, install the module globally

$ npm install -g shields-badge-url-github-social

Usage

Usage: shields-ghs --owner=<owner> --repo=<repo> [options]
 
Options:
 
  -h,  --help                Print this message.
  -V,  --version             Print the package version.
       --owner owner         Repository owner.
       --repo repo           Repository name.
       --action action       Social action; e.g., 'star', 'fork', 'watch'. Default: 'star'.
       --style style         Badge style. Default: 'flat'.
       --format format       Badge format. Default: 'svg'.

Examples

$ shields-ghs --owner=dstructs --repo=matrix
# => {"image":"https://img.shields.io/github/stars/dstructs/matrix.svg?style=social&label=Star&link=https://github.com/dstructs/matrix&link=https://github.com/dstructs/matrix/stargazers","url":"https://github.com/dstructs/matrix"}

Tests

Unit

This repository uses tape for unit tests. To run the tests, execute the following command in the top-level application directory:

$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

Browser Support

This repository uses Testling for browser testing. To run the tests in a (headless) local web browser, execute the following command in the top-level application directory:

$ make test-browsers

To view the tests in a local web browser,

$ make view-browser-tests

License

MIT license.

Copyright

Copyright © 2016. Athan Reines.

Package Sidebar

Install

npm i shields-badge-url-github-social

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • kgryte