cli-stash
Version:
CLI application to manage and work with Atlassian Stash. Work with your Stash project and repositories from Command lines.
58 lines (57 loc) • 2.68 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 {
const dataToCreate = this.hasInputData() ? this.getJSONInputData() : {
group: this.flags.group,
users: this.flags.users
};
const message = 'Users added to the group successfully';
await connector.admin.groups().addUsers(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 multiple users to a group. ' + ux_1.UX.processDocumentation('<doc:User>');
Add.examples = [
`$ stash admin:groups:members:add -a MyStashAlias --data "{ 'group': 'GroupName', 'users': [ 'user1', 'user2', 'user3' ] }"`,
`$ stash admin:groups:members:add -a MyStashAlias --file "path/to/json/data/file"`,
`$ stash admin:groups:members:add -a MyStashAlias --group "GroupName" --users "user1, user2, user3"`,
];
Add.flags = {
...baseCommand_1.BaseCommand.flags,
alias: baseCommand_1.BuildFlags.alias,
data: baseCommand_1.BuildFlags.input.jsonData('<doc:AddUserInput>', false, ['group', 'users']),
file: baseCommand_1.BuildFlags.input.jsonFile('<doc:AddUserInput>', false, ['group', 'users']),
//keyvalue: BuildFlags.input.keyvalue('<doc:AddUserInput>', false, ['group', 'users']),
group: core_1.Flags.string({
description: 'The group name to add new members. ' + ux_1.UX.cannotUseWith(['data', 'file', 'keyvalue']) + '. ' + ux_1.UX.dependsOn(['users']),
char: 'g',
name: 'Group',
dependsOn: ['users'],
}),
users: core_1.Flags.string({
description: 'Comma separated user names to add to the group. ' + ux_1.UX.dependsOn(['group']),
char: 'u',
name: 'Users',
dependsOn: ['group'],
parse: (input) => {
return baseCommand_1.BuildFlags.parseArray(input);
}
}),
};