shields-badge-url-codecov

1.0.2 • Public • Published

Codecov Badge URLs

NPM version Build Status Coverage Status Dependencies

Creates Shields.io badge URLs for Codecov.

Installation

$ npm install shields-badge-url-codecov

Usage

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

urls( opts )

Creates Shields.io badge URLs for Codecov.

var opts = {
    'owner': 'dstructs',
    'repo': 'matrix'
};
 
var out = urls( opts );
/*
    {
        "image": "https://img.shields.io/codecov/c/github/dstructs/matrix/master.svg?style=flat",
        "url": "https://codecov.io/github/dstructs/matrix?branch=master"
    }
*/ 

The function accepts the following options:

  • owner: repository owner (required).
  • repo: repository name (required).
  • host: repository host; e.g., github, bitbucket, gitlab, etc. Default: github.
  • branch: repository branch. Default: master.
  • token: Codecov API token for private repositories.
  • style: badge style. Default: flat.
  • 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-codecov' );
 
// 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 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-codecov

Usage

Usage: shields-codecov --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.
       --host host           Repository host. Default: 'github'.
       --branch branch       Repository branch. Default: 'master'.
       --token token         Codecov API token.
       --style style         Badge style. Default: 'flat'.
       --format format       Badge format. Default: 'svg'.

Examples

$ shields-codecov --owner=dstructs --repo=matrix
# => {"image":"https://img.shields.io/codecov/c/github/dstructs/matrix/master.svg?style=flat","url":"https://codecov.io/github/dstructs/matrix?branch=master"}

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-codecov

Weekly Downloads

0

Version

1.0.2

License

MIT

Last publish

Collaborators

  • kgryte