hubot-deploy
Version:
hubot script for GitHub Flow
39 lines (31 loc) • 960 B
text/coffeescript
fernet = require 'fernet'
class Vault
constructor: () ->
?.vault or= {}
= .vault
= ()
set: (key, value) ->
token = new fernet.Token(secret: ())
[key] = token.encode(JSON.stringify(value))
get: (key) ->
return undefined unless [key]
for secret in
token = new fernet.Token
secret: secret
token: [key]
ttl: 0
try
value = JSON.parse(token.decode())
return value
catch error
continue
unset: (key) ->
delete [key]
currentSecret: ->
[0]
getSecrets: ->
unless process.env.HUBOT_DEPLOY_FERNET_SECRETS?
throw new Error("Please set a HUBOT_DEPLOY_FERNET_SECRETS string in the environment")
fernetSecrets = process.env.HUBOT_DEPLOY_FERNET_SECRETS.split(",")
(new fernet.Secret(secret) for secret in fernetSecrets)
exports.Vault = Vault