1.0.2 • Published 8 years ago

shields-badge-url-codecov v1.0.2

Weekly downloads
9
License
MIT
Repository
github
Last release
8 years ago

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.