lib/commands/clients/rotate.js
'use strict'
let cli = require('heroku-cli-util')
let co = require('co')
function * run (context, heroku) {
let id = context.args.id
cli.log(`Updating ${cli.color.cyan(id)}`)
let client = yield heroku.request({
method: 'POST',
path: `/oauth/clients/${encodeURIComponent(id)}/actions/rotate-credentials`
})
if (context.flags.json) {
cli.styledJSON(client)
} else if (context.flags.shell) {
cli.log(`HEROKU_OAUTH_ID=${client.id}`)
cli.log(`HEROKU_OAUTH_SECRET=${client.secret}`)
} else {
cli.styledHeader(client.name)
cli.styledObject(client)
}
}
module.exports = {
topic: 'clients',
command: 'rotate',
description: 'rotate OAuth client secret',
args: [{name: 'id'}],
flags: [
{name: 'json', char: 'j', description: 'output in json format'},
{name: 'shell', char: 's', description: 'output in shell format'}
],
needsAuth: true,
run: cli.command(co.wrap(run))
}