UNPKG

hubot-deploy

Version:
58 lines (50 loc) 2.82 kB
# Description # Enable deployments from chat that correctly attribute you as the creator - https://github.com/atmos/hubot-deploy # # Commands: # hubot deploy-token:set:github <token> - Sets your user's GitHub deployment token. Requires repo scope. # hubot deploy-token:reset:github - Resets your user's GitHub deployment token. # hubot deploy-token:verify:github - Verifies that your GitHub deployment token is valid. # supported_tasks = [ "#{DeployPrefix}-token" ] Path = require("path") Patterns = require(Path.join(__dirname, "..", "models", "patterns")) Deployment = require(Path.join(__dirname, "..", "github", "api")).Deployment DeployPrefix = Patterns.DeployPrefix DeployPattern = Patterns.DeployPattern DeploysPattern = Patterns.DeploysPattern Verifiers = require(Path.join(__dirname, "..", "models", "verifiers")) TokenForBrain = Verifiers.VaultKey ApiTokenVerifier = Verifiers.ApiTokenVerifier ########################################################################### module.exports = (robot) -> if process.env.HUBOT_DEPLOY_PRIVATE_MESSAGE_TOKEN_MANAGEMENT is "true" robot.respond ///#{DeployPrefix}-token:set:github\s+(.*)///i, id: "hubot-deploy.token.set", (msg) -> user = robot.brain.userForId msg.envelope.user.id token = msg.match[1] # Versions of hubot-deploy < 0.9.0 stored things unencrypted, encrypt them. delete(user.githubDeployToken) verifier = new ApiTokenVerifier(token) verifier.valid (result) -> if result robot.vault.forUser(user).set(TokenForBrain, verifier.token) msg.send "Your GitHub token is valid. I stored it for future use." else msg.send "Your GitHub token is invalid, verify that it has 'repo' scope." robot.respond ///#{DeployPrefix}-token:reset:github$///i, id: "hubot-deploy.token.reset", (msg) -> user = robot.brain.userForId msg.envelope.user.id robot.vault.forUser(user).unset(TokenForBrain) # Versions of hubot-deploy < 0.9.0 stored things unencrypted, encrypt them. delete(user.githubDeployToken) msg.reply "I nuked your GitHub token. I'll try to use my default token until you configure another." robot.respond ///#{DeployPrefix}-token:verify:github$///i, id: "hubot-deploy.token.verify", (msg) -> user = robot.brain.userForId msg.envelope.user.id # Versions of hubot-deploy < 0.9.0 stored things unencrypted, encrypt them. delete(user.githubDeployToken) token = robot.vault.forUser(user).get(TokenForBrain) verifier = new ApiTokenVerifier(token) verifier.valid (result) -> if result msg.send "Your GitHub token is valid on #{verifier.config.hostname}." else msg.send "Your GitHub token is invalid, verify that it has 'repo' scope."