in src/server/api/repo.js [30:66]
create: async (req) => {
req.args.token = req.args.token || req.user.token
utils.validateArgs(req.args, REPOCREATESCHEMA, true)
const repoArgs = {
repo: req.args.repo,
owner: req.args.owner,
token: req.args.token
}
let dbRepo
try {
dbRepo = await repo.get(repoArgs)
if (!dbRepo) {
throw 'New repo should be created'
}
try {
const ghRepo = await repo.getGHRepo(repoArgs)
if (ghRepo && ghRepo.id != dbRepo.repoId) {
throw 'Repo id has changed'
}
} catch (error) {
return repo.update(req.args)
}
} catch (error) {
dbRepo = await repo.create(req.args)
if (dbRepo.gist) {
try {
webhook.create(req)
} catch (error) {
logger.error(`Could not create a webhook for the new repo ${new Error(error)}`)
}
}
return dbRepo
}
throw 'This repository is already linked.'
},