UNPKG

cli-stash

Version:

CLI application to manage and work with Atlassian Stash. Work with your Stash project and repositories from Command lines.

59 lines (58 loc) 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@oclif/core"); const stash_connector_1 = require("stash-connector"); const baseCommand_1 = require("../../../../libs/core/baseCommand"); const stashResponse_1 = require("../../../../libs/core/stashResponse"); const ux_1 = require("../../../../libs/core/ux"); class Add extends baseCommand_1.BaseCommand { async run() { const response = new stashResponse_1.StashCLIResponse(); const connector = new stash_connector_1.StashConnector(this.localConfig.getConnectorOptions(this.flags.alias)); try { this.ux.log(this.flags.keyvalue); const dataToCreate = this.hasInputData() ? this.getJSONInputData() : { groups: this.flags.groups, user: this.flags.user }; const message = 'User added to the groups successfully'; await connector.admin.users().addGroups(dataToCreate); response.status = 0; response.message = message; this.ux.log(response.message); } catch (error) { this.processError(response, error); } return response; } } exports.default = Add; Add.description = 'Add User to a multiple groups. ' + ux_1.UX.processDocumentation('<doc:AddGroupInput>'); Add.examples = [ `$ stash admin:users:groups:add -a MyStashAlias --data "{ 'user': 'username', 'groups': [ 'group1', 'group2', 'group3' ] }"`, `$ stash admin:users:groups:add -a MyStashAlias --file "path/to/json/data/file"`, `$ stash admin:users:groups:add -a MyStashAlias --user "username" --groups "group1, group2, group3"`, ]; Add.flags = { ...baseCommand_1.BaseCommand.flags, alias: baseCommand_1.BuildFlags.alias, data: baseCommand_1.BuildFlags.input.jsonData('<doc:AddGroupInput>', false, ['groups', 'users']), file: baseCommand_1.BuildFlags.input.jsonFile('<doc:AddGroupInput>', false, ['groups', 'users']), //keyvalue: BuildFlags.input.keyvalue('<doc:AddUserInput>', false, ['group', 'users']), user: core_1.Flags.string({ description: 'The user name to add to the groups. ' + ux_1.UX.cannotUseWith(['data', 'file', 'keyvalue']) + '. ' + ux_1.UX.dependsOn(['users']), char: 'g', name: 'Group', dependsOn: ['groups'], }), groups: core_1.Flags.string({ description: 'Comma separated group names to add to add the user. ' + ux_1.UX.dependsOn(['user']), char: 'u', name: 'Users', dependsOn: ['user'], parse: (input) => { return baseCommand_1.BuildFlags.parseArray(input); } }), };