gh-topics
Version:
Set and get a GitHub repository topic WIP
44 lines (40 loc) • 1.22 kB
JavaScript
const Octokat = require('octokat')
var octo
module.exports = function (repoName, description, flags, token) {
if (typeof repoName !== 'string') {
throw new TypeError('Expected a string')
}
if (repoName.split('/').length !== 2) {
throw new Error('Not a repository name in form \'user/repo\'')
}
return Promise.resolve().then(() => {
octo = new Octokat({
token: token || process.env.GH_DESCRIPTION_TOKEN
})
return repoName
}).then((repoName) => {
repoName = repoName.split('/')
return octo.repos(repoName[0], repoName[1]).fetch()
}).then(function (result) {
if (description) {
// return octo.repos(result.owner.login, result.name).update({
// 'description': description,
// 'name': result.name
// }).then((result) => {
// return { method: 'patch', description: result.description }
// }).catch((err) => {
// console.log(err)
// throw ('Unable to set description', err)
// })
} else {
return { method: 'get', topics: result }
}
}).catch(function (err) {
if (err.status === 404) {
return err
} else {
throw ('Could not get GitHub user', err)
}
})
}