Started from strider-git

This commit is contained in:
didier.amyot committed 2014-01-20 08:26:45 -05:00
commit 3c8aafcbc2
12 files changed
+498

No files matched your search

+57
View File
@@ -0,0 +1,57 @@
var utils = require('./lib')
function sanitizeConfig(config) { // v
if (!config.auth) return false
return {
url: config.url,
display_url: config.display_url,
auth: {
type: config.auth.type,
privkey: config.auth.privkey,
pubkey: config.auth.pubkey,
username: config.auth.username,
password: config.auth.password
}
}
}
module.exports = {
config: {
url: String,
display_url: String,
auth: {
type: { type: String, enum: ['ssh', 'https', 'http'] },
privkey: String,
pubkey: String,
username: String,
password: String
}
},
getBranches: function (userConfig, config, project, done) {
utils.getBranches(config, project.privkey, done)
},
// native git doesn't have a great way to just get a single file at an arbitrary revision
fastFile: false,
getFile: function (filename, ref, config, project, done) {
done(new Error('not implemented'));
// utils.gitcmd('git archive --remote=' + url + ' ' + (ref.fetch || ref.id) + ' .strider.json', ...);
},
routes: function (app, context) {
app.get('config', context.auth.requireProjectAdmin, function (req, res) {
res.send(req.providerConfig())
})
app.put('config', context.auth.requireProjectAdmin, function (req, res) {
// validate the config
var config = sanitizeConfig(req.body)
req.providerConfig(config, function (err) {
if (err) {
res.status(500)
return res.send({errors: [err.message]})
}
res.send({success: true, message: 'Saved git config!', config: config})
})
})
}
}