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
JavaScript
;
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);
}
}),
};