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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 5x 5x 5x 5x 1x 1x 1x 1x 1x 1x 5x 5x 5x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x 1x | var bag = require('bagofrequest');
var github = require('@octokit/rest');
var url = require('url');
var dotfile = require('dotfile')('repomanrc');
var BluePromise = require('bluebird');
/**
* Configuration generator for remote GitHub repositories.
*
* @param {String} user: GitHub username
* @param {String} pass: GitHub password
* @class
*/
function GithubAuth() {
var opts = {
version: '3.0.0',
timeout: 30000
};
var proxy = bag.proxy();
if (proxy) {
proxy = url.parse(proxy);
opts.proxy = {
host: proxy.hostname,
port: proxy.port
};
}
this.gh = new github(opts);
}
GithubAuth.prototype.authBasic = function(user, pass) {
return this.gh.authenticate({
type: 'basic',
username: user,
password: pass
});
};
GithubAuth.prototype.fetchAndStoreAuthToken = function(optionalTwoFactor) {
var self = this;
return new BluePromise(function(s, f) {
var headers = {};
if (optionalTwoFactor) {
headers['X-GitHub-OTP'] = optionalTwoFactor;
}
self.gh.authorization.create(
{
scopes: ['user', 'public_repo', 'repo', 'repo:status', 'gist'],
note: 'read repos for repoman4',
headers: headers
},
function(err, res) {
if (res && res.data && res.data.token) {
self.ghToken = res.data.token;
console.log('got Github auth token');
dotfile.exists(function() {
dotfile.write({ githubAuthToken: self.ghToken }, function() {
dotfile.read(function(err, disk) {
console.log('saved Github auth');
console.log(disk);
s();
});
});
});
} else if (err) {
console.log(err);
f(err);
}
}
);
});
};
GithubAuth.prototype.readAuthToken = function() {
return new BluePromise(function(s, f) {
dotfile.exists(function(yesno) {
if (yesno) {
dotfile.read(function(err, disk) {
if (disk.githubAuthToken) {
s(disk.githubAuthToken);
} else {
f(new Error('no auth token in dotfile'));
}
});
} else {
f(new Error('no dotfile'));
}
});
});
};
module.exports = GithubAuth;
|