Creates Shields.io badge URLs for Codecov.
$ npm install shields-badge-url-codecov
var urls = require( 'shields-badge-url-codecov' );
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
.
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
To use the module as a general utility, install the module globally
$ npm install -g shields-badge-url-codecov
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'.
$ 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"}
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.
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
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
Copyright © 2016. Athan Reines.