@oh-gc/cli 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +44 -16
  2. package/dist/api/user.d.ts +225 -2
  3. package/dist/api/user.js +107 -1
  4. package/dist/api/user.js.map +1 -1
  5. package/dist/commands/search/users.d.ts +16 -0
  6. package/dist/commands/search/users.js +52 -0
  7. package/dist/commands/search/users.js.map +1 -0
  8. package/dist/commands/user/edit.d.ts +17 -0
  9. package/dist/commands/user/edit.js +79 -0
  10. package/dist/commands/user/edit.js.map +1 -0
  11. package/dist/commands/user/events.d.ts +14 -0
  12. package/dist/commands/user/events.js +61 -0
  13. package/dist/commands/user/events.js.map +1 -0
  14. package/dist/commands/user/issues.d.ts +21 -0
  15. package/dist/commands/user/issues.js +81 -0
  16. package/dist/commands/user/issues.js.map +1 -0
  17. package/dist/commands/user/key-add.d.ts +11 -0
  18. package/dist/commands/user/key-add.js +28 -0
  19. package/dist/commands/user/key-add.js.map +1 -0
  20. package/dist/commands/user/key-delete.d.ts +12 -0
  21. package/dist/commands/user/key-delete.js +27 -0
  22. package/dist/commands/user/key-delete.js.map +1 -0
  23. package/dist/commands/user/key-get.d.ts +12 -0
  24. package/dist/commands/user/key-get.js +36 -0
  25. package/dist/commands/user/key-get.js.map +1 -0
  26. package/dist/commands/user/keys.d.ts +11 -0
  27. package/dist/commands/user/keys.js +44 -0
  28. package/dist/commands/user/keys.js.map +1 -0
  29. package/dist/commands/user/leave-org.d.ts +12 -0
  30. package/dist/commands/user/leave-org.js +29 -0
  31. package/dist/commands/user/leave-org.js.map +1 -0
  32. package/dist/commands/user/membership.d.ts +12 -0
  33. package/dist/commands/user/membership.js +37 -0
  34. package/dist/commands/user/membership.js.map +1 -0
  35. package/dist/commands/user/namespace.d.ts +12 -0
  36. package/dist/commands/user/namespace.js +39 -0
  37. package/dist/commands/user/namespace.js.map +1 -0
  38. package/dist/commands/user/namespaces.d.ts +12 -0
  39. package/dist/commands/user/namespaces.js +51 -0
  40. package/dist/commands/user/namespaces.js.map +1 -0
  41. package/dist/commands/user/orgs.d.ts +14 -0
  42. package/dist/commands/user/orgs.js +48 -0
  43. package/dist/commands/user/orgs.js.map +1 -0
  44. package/dist/commands/user/prs.d.ts +22 -0
  45. package/dist/commands/user/prs.js +80 -0
  46. package/dist/commands/user/prs.js.map +1 -0
  47. package/dist/commands/user/search.d.ts +16 -0
  48. package/dist/commands/user/search.js +57 -0
  49. package/dist/commands/user/search.js.map +1 -0
  50. package/dist/commands/user/starred.d.ts +16 -0
  51. package/dist/commands/user/starred.js +60 -0
  52. package/dist/commands/user/starred.js.map +1 -0
  53. package/dist/commands/user/subscriptions.d.ts +16 -0
  54. package/dist/commands/user/subscriptions.js +60 -0
  55. package/dist/commands/user/subscriptions.js.map +1 -0
  56. package/dist/commands/user/update.d.ts +15 -0
  57. package/dist/commands/user/update.js +60 -0
  58. package/dist/commands/user/update.js.map +1 -0
  59. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserEvents extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags, args } = await this.parse(UserEvents);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const username = args.username;
16
+ if (!username) {
17
+ this.error('Username is required. Usage: oh-gc user:events <username>');
18
+ }
19
+ const params = {};
20
+ if (flags.year)
21
+ params.year = flags.year;
22
+ if (flags.next)
23
+ params.next = flags.next;
24
+ const result = await (0, user_1.getUserEvents)(token, username, params);
25
+ if (flags.json) {
26
+ (0, ui_1.printJson)(result);
27
+ }
28
+ else {
29
+ const events = result.events || {};
30
+ const dates = Object.keys(events).sort().reverse();
31
+ if (dates.length === 0) {
32
+ this.log('No events found.');
33
+ return;
34
+ }
35
+ for (const date of dates) {
36
+ this.log(`\n${date}`);
37
+ const dayEvents = events[date];
38
+ for (const event of dayEvents) {
39
+ const author = event.author?.name || event.author?.username || 'unknown';
40
+ this.log(` ${event.action_name} by ${author}`);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
46
+ UserEvents.description = 'List user activity events';
47
+ UserEvents.examples = [
48
+ '<%= config.bin %> user:events',
49
+ '<%= config.bin %> user:events alice',
50
+ '<%= config.bin %> user:events alice --year 2024',
51
+ ];
52
+ UserEvents.flags = {
53
+ ...base_command_1.BaseCommand.baseFlags,
54
+ year: core_1.Flags.string({ description: 'Start year filter (e.g. 2024)' }),
55
+ next: core_1.Flags.string({ description: 'End date filter' }),
56
+ };
57
+ UserEvents.args = {
58
+ username: core_1.Args.string({ description: 'Username (defaults to "me" for current user)' }),
59
+ };
60
+ exports.default = UserEvents;
61
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/commands/user/events.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAA8C;AAC9C,yCAAuC;AACvC,iCAAoC;AACpC,sCAAyC;AAEzC,MAAqB,UAAW,SAAQ,0BAAW;IAmBjD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,MAAM,GAAqC,EAAE,CAAA;QACnD,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACxC,IAAI,KAAK,CAAC,IAAI;YAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QAExC,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAa,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,MAAM,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;gBACrB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC9B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAA;oBACxE,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,OAAO,MAAM,EAAE,CAAC,CAAA;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;;AAtDM,sBAAW,GAAG,2BAA2B,CAAA;AAEzC,mBAAQ,GAAG;IAChB,+BAA+B;IAC/B,qCAAqC;IACrC,iDAAiD;CAClD,CAAA;AAEM,gBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;IACpE,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;CACvD,CAAA;AAEM,eAAI,GAAG;IACZ,QAAQ,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;CACvF,CAAA;kBAjBkB,UAAU"}
@@ -0,0 +1,21 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserIssues extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ filter: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ state: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ labels: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ sort: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ direction: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ since: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ schedule: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ deadline: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ 'created-at': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ 'finished-at': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ 'per-page': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
18
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ run(): Promise<void>;
21
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserIssues extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags } = await this.parse(UserIssues);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const issues = await (0, user_1.listUserIssues)(token, {
16
+ filter: flags.filter,
17
+ state: flags.state,
18
+ labels: flags.labels,
19
+ sort: flags.sort,
20
+ direction: flags.direction,
21
+ since: flags.since,
22
+ schedule: flags.schedule,
23
+ deadline: flags.deadline,
24
+ created_at: flags['created-at'],
25
+ finished_at: flags['finished-at'],
26
+ page: flags.page,
27
+ per_page: flags['per-page'],
28
+ });
29
+ if (flags.json) {
30
+ (0, ui_1.printJson)(issues);
31
+ }
32
+ else {
33
+ if (issues.length === 0) {
34
+ this.log('No issues found.');
35
+ return;
36
+ }
37
+ (0, ui_1.printTable)(issues.map((i) => ({
38
+ number: `#${i.number}`,
39
+ title: i.title,
40
+ state: i.state,
41
+ assignee: i.assignee?.login || '-',
42
+ created: i.created_at ? (0, ui_1.formatDate)(i.created_at) : '',
43
+ })), ['number', 'title', 'state', 'assignee', 'created']);
44
+ }
45
+ }
46
+ }
47
+ UserIssues.description = 'List authenticated user issues across all repos';
48
+ UserIssues.examples = [
49
+ '<%= config.bin %> user:issues',
50
+ '<%= config.bin %> user:issues --state closed',
51
+ '<%= config.bin %> user:issues --filter created --sort created_at',
52
+ ];
53
+ UserIssues.flags = {
54
+ ...base_command_1.BaseCommand.baseFlags,
55
+ filter: core_1.Flags.string({
56
+ description: 'Filter: assigned, created, or all',
57
+ options: ['assigned', 'created', 'all'],
58
+ }),
59
+ state: core_1.Flags.string({
60
+ description: 'Issue state: open, progressing, closed, rejected, all',
61
+ default: 'open',
62
+ }),
63
+ labels: core_1.Flags.string({ description: 'Comma-separated label names' }),
64
+ sort: core_1.Flags.string({
65
+ description: 'Sort by: created_at or updated_at',
66
+ default: 'created_at',
67
+ }),
68
+ direction: core_1.Flags.string({
69
+ description: 'Sort direction: asc or desc',
70
+ default: 'desc',
71
+ }),
72
+ since: core_1.Flags.string({ description: 'Only issues updated after this time (ISO 8601)' }),
73
+ schedule: core_1.Flags.string({ description: 'Filter by planned start date range' }),
74
+ deadline: core_1.Flags.string({ description: 'Filter by planned end date range' }),
75
+ 'created-at': core_1.Flags.string({ description: 'Filter by issue creation time range' }),
76
+ 'finished-at': core_1.Flags.string({ description: 'Filter by issue completion time range' }),
77
+ page: core_1.Flags.integer({ description: 'Page number', default: 1 }),
78
+ 'per-page': core_1.Flags.integer({ description: 'Results per page (max 100)', default: 20 }),
79
+ };
80
+ exports.default = UserIssues;
81
+ //# sourceMappingURL=issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../../src/commands/user/issues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserKeyAdd extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ title: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ key: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const core_1 = require("@oclif/core");
7
+ class UserKeyAdd extends base_command_1.BaseCommand {
8
+ async run() {
9
+ const { flags } = await this.parse(UserKeyAdd);
10
+ const token = (0, config_1.getToken)();
11
+ if (!token) {
12
+ this.error('Not authenticated. Run: oh-gc auth login');
13
+ }
14
+ const key = await (0, user_1.addUserKey)(token, { title: flags.title, key: flags.key });
15
+ this.log(`SSH key "${key.title}" added successfully (ID: ${key.id})`);
16
+ }
17
+ }
18
+ UserKeyAdd.description = 'Add an SSH public key';
19
+ UserKeyAdd.examples = [
20
+ '<%= config.bin %> user:key-add --title "My Laptop" --key "ssh-rsa AAA..."',
21
+ ];
22
+ UserKeyAdd.flags = {
23
+ ...base_command_1.BaseCommand.baseFlags,
24
+ title: core_1.Flags.string({ description: 'Title for the key', required: true }),
25
+ key: core_1.Flags.string({ description: 'SSH public key content', required: true }),
26
+ };
27
+ exports.default = UserKeyAdd;
28
+ //# sourceMappingURL=key-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-add.js","sourceRoot":"","sources":["../../../src/commands/user/key-add.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAA2C;AAC3C,yCAAuC;AACvC,sCAAyC;AAEzC,MAAqB,UAAW,SAAQ,0BAAW;IAajD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;QAE3E,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,KAAK,6BAA6B,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IACvE,CAAC;;AAtBM,sBAAW,GAAG,uBAAuB,CAAA;AAErC,mBAAQ,GAAG;IAChB,2EAA2E;CAC5E,CAAA;AAEM,gBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzE,GAAG,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC7E,CAAA;kBAXkB,UAAU"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserKeyDelete extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ static args: {
9
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const core_1 = require("@oclif/core");
7
+ class UserKeyDelete extends base_command_1.BaseCommand {
8
+ async run() {
9
+ const { args } = await this.parse(UserKeyDelete);
10
+ const token = (0, config_1.getToken)();
11
+ if (!token) {
12
+ this.error('Not authenticated. Run: oh-gc auth login');
13
+ }
14
+ await (0, user_1.deleteUserKey)(token, parseInt(args.id, 10));
15
+ this.log(`SSH key ${args.id} deleted successfully.`);
16
+ }
17
+ }
18
+ UserKeyDelete.description = 'Delete an SSH public key';
19
+ UserKeyDelete.examples = ['<%= config.bin %> user:key-delete 123'];
20
+ UserKeyDelete.flags = {
21
+ ...base_command_1.BaseCommand.baseFlags,
22
+ };
23
+ UserKeyDelete.args = {
24
+ id: core_1.Args.string({ description: 'SSH key ID', required: true }),
25
+ };
26
+ exports.default = UserKeyDelete;
27
+ //# sourceMappingURL=key-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-delete.js","sourceRoot":"","sources":["../../../src/commands/user/key-delete.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAA8C;AAC9C,yCAAuC;AACvC,sCAAkC;AAElC,MAAqB,aAAc,SAAQ,0BAAW;IAapD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAA,oBAAa,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAEjD,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAA;IACtD,CAAC;;AAtBM,yBAAW,GAAG,0BAA0B,CAAA;AAExC,sBAAQ,GAAG,CAAC,uCAAuC,CAAC,CAAA;AAEpD,mBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAA;AAEM,kBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC/D,CAAA;kBAXkB,aAAa"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserKeyGet extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ static args: {
9
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserKeyGet extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags, args } = await this.parse(UserKeyGet);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const key = await (0, user_1.getUserKey)(token, args.id);
16
+ if (flags.json) {
17
+ (0, ui_1.printJson)(key);
18
+ }
19
+ else {
20
+ this.log(`ID: ${key.id}`);
21
+ this.log(`Title: ${key.title}`);
22
+ this.log(`Key: ${key.key}`);
23
+ this.log(`Created: ${key.created_at}`);
24
+ }
25
+ }
26
+ }
27
+ UserKeyGet.description = 'View an SSH public key';
28
+ UserKeyGet.examples = ['<%= config.bin %> user key-get 12345'];
29
+ UserKeyGet.flags = {
30
+ ...base_command_1.BaseCommand.baseFlags,
31
+ };
32
+ UserKeyGet.args = {
33
+ id: core_1.Args.string({ description: 'Key ID', required: true }),
34
+ };
35
+ exports.default = UserKeyGet;
36
+ //# sourceMappingURL=key-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-get.js","sourceRoot":"","sources":["../../../src/commands/user/key-get.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAA2C;AAC3C,yCAAuC;AACvC,iCAAoC;AACpC,sCAAkC;AAElC,MAAqB,UAAW,SAAQ,0BAAW;IAajD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,GAAG,CAAC,CAAA;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;YACzB,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;YAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;;AA7BM,sBAAW,GAAG,wBAAwB,CAAA;AAEtC,mBAAQ,GAAG,CAAC,sCAAsC,CAAC,CAAA;AAEnD,gBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAA;AAEM,eAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC3D,CAAA;kBAXkB,UAAU"}
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserKeys extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ 'per-page': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserKeys extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags } = await this.parse(UserKeys);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const keys = await (0, user_1.getUserKeys)(token, {
16
+ page: flags.page,
17
+ per_page: flags['per-page'],
18
+ });
19
+ if (flags.json) {
20
+ (0, ui_1.printJson)(keys);
21
+ }
22
+ else {
23
+ if (keys.length === 0) {
24
+ this.log('No SSH keys found.');
25
+ return;
26
+ }
27
+ (0, ui_1.printTable)(keys.map((k) => ({
28
+ id: k.id,
29
+ title: k.title,
30
+ key: k.key.substring(0, 40) + '...',
31
+ created_at: k.created_at?.substring(0, 10) || '',
32
+ })), ['id', 'title', 'key', 'created_at']);
33
+ }
34
+ }
35
+ }
36
+ UserKeys.description = 'List SSH public keys for authenticated user';
37
+ UserKeys.examples = ['<%= config.bin %> user:keys'];
38
+ UserKeys.flags = {
39
+ ...base_command_1.BaseCommand.baseFlags,
40
+ page: core_1.Flags.integer({ description: 'Page number', default: 1 }),
41
+ 'per-page': core_1.Flags.integer({ description: 'Results per page (max 100)', default: 20 }),
42
+ };
43
+ exports.default = UserKeys;
44
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/commands/user/keys.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAA4C;AAC5C,yCAAuC;AACvC,iCAAgD;AAChD,sCAAmC;AAEnC,MAAqB,QAAS,SAAQ,0BAAW;IAW/C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAW,EAAC,KAAK,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;SAC5B,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,IAAI,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;gBAC9B,OAAM;YACR,CAAC;YACD,IAAA,eAAU,EACR,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACf,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;gBACnC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;aACjD,CAAC,CAAC,EACH,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CACrC,CAAA;QACH,CAAC;IACH,CAAC;;AAvCM,oBAAW,GAAG,6CAA6C,CAAA;AAE3D,iBAAQ,GAAG,CAAC,6BAA6B,CAAC,CAAA;AAE1C,cAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC/D,UAAU,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;CACtF,CAAA;kBATkB,QAAQ"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserLeaveOrg extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ static args: {
9
+ org: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const core_1 = require("@oclif/core");
7
+ class UserLeaveOrg extends base_command_1.BaseCommand {
8
+ async run() {
9
+ const { args } = await this.parse(UserLeaveOrg);
10
+ const token = (0, config_1.getToken)();
11
+ if (!token) {
12
+ this.error('Not authenticated. Run: oh-gc auth login');
13
+ }
14
+ await (0, user_1.leaveOrg)(token, args.org);
15
+ this.log(`Successfully left organization "${args.org}".`);
16
+ }
17
+ }
18
+ UserLeaveOrg.description = 'Leave an organization';
19
+ UserLeaveOrg.examples = [
20
+ '<%= config.bin %> user:leave-org myorg',
21
+ ];
22
+ UserLeaveOrg.flags = {
23
+ ...base_command_1.BaseCommand.baseFlags,
24
+ };
25
+ UserLeaveOrg.args = {
26
+ org: core_1.Args.string({ description: 'Organization path', required: true }),
27
+ };
28
+ exports.default = UserLeaveOrg;
29
+ //# sourceMappingURL=leave-org.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leave-org.js","sourceRoot":"","sources":["../../../src/commands/user/leave-org.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAAyC;AACzC,yCAAuC;AACvC,sCAAkC;AAElC,MAAqB,YAAa,SAAQ,0BAAW;IAenD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAA,eAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAE/B,IAAI,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3D,CAAC;;AAxBM,wBAAW,GAAG,uBAAuB,CAAA;AAErC,qBAAQ,GAAG;IAChB,wCAAwC;CACzC,CAAA;AAEM,kBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAA;AAEM,iBAAI,GAAG;IACZ,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACvE,CAAA;kBAbkB,YAAY"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserMembership extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ static args: {
9
+ org: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserMembership extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags, args } = await this.parse(UserMembership);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const membership = await (0, user_1.getOrgMembership)(token, args.org);
16
+ if (flags.json) {
17
+ (0, ui_1.printJson)(membership);
18
+ }
19
+ else {
20
+ this.log(`Organization: ${membership.name} (${membership.path})`);
21
+ this.log(`URL: ${membership.url}`);
22
+ this.log(`User: ${membership.user.name} (${membership.user.login})`);
23
+ }
24
+ }
25
+ }
26
+ UserMembership.description = 'Get your membership in an organization';
27
+ UserMembership.examples = [
28
+ '<%= config.bin %> user:membership myorg',
29
+ ];
30
+ UserMembership.flags = {
31
+ ...base_command_1.BaseCommand.baseFlags,
32
+ };
33
+ UserMembership.args = {
34
+ org: core_1.Args.string({ description: 'Organization path', required: true }),
35
+ };
36
+ exports.default = UserMembership;
37
+ //# sourceMappingURL=membership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"membership.js","sourceRoot":"","sources":["../../../src/commands/user/membership.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAAiD;AACjD,yCAAuC;AACvC,iCAAoC;AACpC,sCAAkC;AAElC,MAAqB,cAAe,SAAQ,0BAAW;IAerD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAE1D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,UAAU,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,CAAA;YACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;YAClC,IAAI,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;;AA9BM,0BAAW,GAAG,wCAAwC,CAAA;AAEtD,uBAAQ,GAAG;IAChB,yCAAyC;CAC1C,CAAA;AAEM,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAA;AAEM,mBAAI,GAAG;IACZ,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACvE,CAAA;kBAbkB,cAAc"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserNamespace extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ static args: {
9
+ path: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserNamespace extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags, args } = await this.parse(UserNamespace);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const ns = await (0, user_1.getUserNamespace)(token, args.path);
16
+ if (flags.json) {
17
+ (0, ui_1.printJson)(ns);
18
+ }
19
+ else {
20
+ this.log(`Path: ${ns.path}`);
21
+ this.log(`Name: ${ns.name}`);
22
+ this.log(`Type: ${ns.type}`);
23
+ this.log(`URL: ${ns.html_url}`);
24
+ }
25
+ }
26
+ }
27
+ UserNamespace.description = 'Get a namespace by path';
28
+ UserNamespace.examples = [
29
+ '<%= config.bin %> user:namespace alice',
30
+ '<%= config.bin %> user:namespace myorg',
31
+ ];
32
+ UserNamespace.flags = {
33
+ ...base_command_1.BaseCommand.baseFlags,
34
+ };
35
+ UserNamespace.args = {
36
+ path: core_1.Args.string({ description: 'Namespace path', required: true }),
37
+ };
38
+ exports.default = UserNamespace;
39
+ //# sourceMappingURL=namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../src/commands/user/namespace.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAAiD;AACjD,yCAAuC;AACvC,iCAAoC;AACpC,sCAAkC;AAElC,MAAqB,aAAc,SAAQ,0BAAW;IAgBpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAEnD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,EAAE,CAAC,CAAA;QACf,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;;AAhCM,yBAAW,GAAG,yBAAyB,CAAA;AAEvC,sBAAQ,GAAG;IAChB,wCAAwC;IACxC,wCAAwC;CACzC,CAAA;AAEM,mBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAA;AAEM,kBAAI,GAAG;IACZ,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACrE,CAAA;kBAdkB,aAAa"}
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class UserNamespaces extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ mode: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ 'per-page': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const user_1 = require("../../api/user");
5
+ const config_1 = require("../../config");
6
+ const ui_1 = require("../../ui");
7
+ const core_1 = require("@oclif/core");
8
+ class UserNamespaces extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { flags } = await this.parse(UserNamespaces);
11
+ const token = (0, config_1.getToken)();
12
+ if (!token) {
13
+ this.error('Not authenticated. Run: oh-gc auth login');
14
+ }
15
+ const namespaces = await (0, user_1.getUserNamespaces)(token, {
16
+ mode: flags.mode,
17
+ page: flags.page,
18
+ perPage: flags['per-page'],
19
+ });
20
+ if (flags.json) {
21
+ (0, ui_1.printJson)(namespaces);
22
+ }
23
+ else {
24
+ if (namespaces.length === 0) {
25
+ this.log('No namespaces found.');
26
+ return;
27
+ }
28
+ (0, ui_1.printTable)(namespaces.map((ns) => ({
29
+ path: ns.path,
30
+ name: ns.name,
31
+ type: ns.type,
32
+ })), ['path', 'name', 'type']);
33
+ }
34
+ }
35
+ }
36
+ UserNamespaces.description = 'List all namespaces for authenticated user';
37
+ UserNamespaces.examples = [
38
+ '<%= config.bin %> user:namespaces',
39
+ '<%= config.bin %> user:namespaces --mode all',
40
+ ];
41
+ UserNamespaces.flags = {
42
+ ...base_command_1.BaseCommand.baseFlags,
43
+ mode: core_1.Flags.string({
44
+ description: 'Filter mode: project, intrant, or all (default)',
45
+ default: 'all',
46
+ }),
47
+ page: core_1.Flags.integer({ description: 'Page number', default: 1 }),
48
+ 'per-page': core_1.Flags.integer({ description: 'Results per page', default: 20 }),
49
+ };
50
+ exports.default = UserNamespaces;
51
+ //# sourceMappingURL=namespaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/commands/user/namespaces.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,yCAAkD;AAClD,yCAAuC;AACvC,iCAAgD;AAChD,sCAAmC;AAEnC,MAAqB,cAAe,SAAQ,0BAAW;IAkBrD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,IAAA,iBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAA,wBAAiB,EAAC,KAAK,EAAE;YAChD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;SAC3B,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,cAAS,EAAC,UAAU,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;gBAChC,OAAM;YACR,CAAC;YACD,IAAA,eAAU,EACR,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;aACd,CAAC,CAAC,EACH,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CACzB,CAAA;QACH,CAAC;IACH,CAAC;;AA9CM,0BAAW,GAAG,4CAA4C,CAAA;AAE1D,uBAAQ,GAAG;IAChB,mCAAmC;IACnC,8CAA8C;CAC/C,CAAA;AAEM,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,KAAK;KACf,CAAC;IACF,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC/D,UAAU,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;CAC5E,CAAA;kBAhBkB,cAAc"}