All files / generator bitbucket.js

100% Statements 42/42
100% Branches 7/7
100% Functions 2/2
100% Lines 42/42

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 2x 4x 3x 3x 3x 3x 3x 3x 4x 1x 1x 2x 2x 3x 3x 3x 1x 1x  
var bitbucket = require('bitbucket-api');
var util = require('util');
 
/**
 * Configuration generator for remote Bitbucket repositories.
 *
 * @param {String} user Bitbucket username
 * @param {String} pass Bitbucket password
 * @class
 */
function Bitbucket(user, pass) {
  this.user = user;
  this.client = bitbucket.createClient({ username: user, password: pass });
}
 
/**
 * Generate Repoman configuration from remote Bitbucket repositories.
 *
 * @param {Function} cb standard cb(err, result) callback
 */
Bitbucket.prototype.generate = function(cb) {
  var config = {};
  this.client.repositories(function(err, repos) {
    if (!err) {
      repos.forEach(function(repo) {
        if (repo.scm === 'git') {
          const url = util.format(
            'ssh://git@bitbucket.org/%s/%s.git',
            repo.owner,
            repo.slug
          );
          config[repo.slug] = { url: url };
        } else {
          console.error('TODO: %s scm is not yet supported', repo.scm);
        }
      });
    }
    cb(err, config);
  });
};
 
module.exports = Bitbucket;