shields-badge-url-travisci

Creates Shields.io badge URLs for Travis CI.

Usage no npm install needed!

<script type="module">
  import shieldsBadgeUrlTravisci from 'https://cdn.skypack.dev/shields-badge-url-travisci';
</script>

README

Travis CI Badge URLs

NPM version Build Status Coverage Status Dependencies

Creates Shields.io badge URLs for Travis CI.

Installation

$ npm install shields-badge-url-travisci

Usage

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

urls( opts )

Creates Shields.io badge URLs for Travis CI.

var opts = {
    'owner': 'dstructs',
    'repo': 'matrix'
};

var out = urls( opts );
/*
    {
        "image": "https://img.shields.io/travis/dstructs/matrix/master.svg?style=flat",
        "url": "https://travis-ci.org/dstructs/matrix"
    }
*/ 

The function accepts the following options:

  • owner: repository owner (required).
  • repo: repository name (required).
  • branch: repository branch. Default: master.
  • 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-travisci' );

// 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-travisci

Usage

Usage: shields-travisci --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.
       --branch branch       Repository branch. Default: 'master'.
       --style style         Badge style. Default: 'flat'.
       --format format       Badge format. Default: 'svg'.

Examples

$ shields-travisci --owner=dstructs --repo=matrix
# => {"image":"https://img.shields.io/travis/dstructs/matrix/master.svg?style=flat","url":"https://travis-ci.org/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.