in api/services/GitHub.js [16:59]
forkRepository: function(user, templateId, done) {
var template = sails.config.templates[templateId];
if (!template) return done(new Error('Invalid template ID'));
Passport.findOne({ user: user.id }).exec(function(err, passport) {
var repoUrl = url.parse(template.repo),
repoOwner = repoUrl.pathname.split('/')[1],
repoName = repoUrl.pathname.split('/')[2],
data = {
user: repoOwner,
repo: repoName
};
// Authenticate request with user's oauth token
github.authenticate({
type: 'oauth',
token: passport.tokens.accessToken
});
github.repos.fork(data, function(err, suc) {
if (err) return done(err);
var values = {
'owner': user.username,
'repository': repoName,
'defaultBranch': suc.default_branch,
'engine': 'jekyll',
'users': [user.id]
};
Site.count({
'owner': user.username,
'repository': repoName
}, function(err, count) {
if (err) return done('Unable to create a fork of this template');
if (count) return done('You already have a copy of this template');
Site.create(values).exec(function createCB(err, created) {
if (err) return done(err);
return done(null, created);
});
});
});
});
},