@oh-gc/cli 0.3.0

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 (76) hide show
  1. package/README.md +186 -0
  2. package/bin/dev.js +19 -0
  3. package/bin/run.js +12 -0
  4. package/dist/api/client.d.ts +9 -0
  5. package/dist/api/client.js +57 -0
  6. package/dist/api/client.js.map +1 -0
  7. package/dist/api/issues.d.ts +60 -0
  8. package/dist/api/issues.js +30 -0
  9. package/dist/api/issues.js.map +1 -0
  10. package/dist/api/prs.d.ts +62 -0
  11. package/dist/api/prs.js +25 -0
  12. package/dist/api/prs.js.map +1 -0
  13. package/dist/api/releases.d.ts +33 -0
  14. package/dist/api/releases.js +41 -0
  15. package/dist/api/releases.js.map +1 -0
  16. package/dist/api/user.d.ts +8 -0
  17. package/dist/api/user.js +8 -0
  18. package/dist/api/user.js.map +1 -0
  19. package/dist/base-command.d.ts +6 -0
  20. package/dist/base-command.js +14 -0
  21. package/dist/base-command.js.map +1 -0
  22. package/dist/commands/auth/login.d.ts +9 -0
  23. package/dist/commands/auth/login.js +77 -0
  24. package/dist/commands/auth/login.js.map +1 -0
  25. package/dist/commands/auth/logout.d.ts +9 -0
  26. package/dist/commands/auth/logout.js +19 -0
  27. package/dist/commands/auth/logout.js.map +1 -0
  28. package/dist/commands/auth/status.d.ts +9 -0
  29. package/dist/commands/auth/status.js +37 -0
  30. package/dist/commands/auth/status.js.map +1 -0
  31. package/dist/commands/issue/comment.d.ts +13 -0
  32. package/dist/commands/issue/comment.js +99 -0
  33. package/dist/commands/issue/comment.js.map +1 -0
  34. package/dist/commands/issue/create.d.ts +13 -0
  35. package/dist/commands/issue/create.js +106 -0
  36. package/dist/commands/issue/create.js.map +1 -0
  37. package/dist/commands/issue/list.d.ts +13 -0
  38. package/dist/commands/issue/list.js +68 -0
  39. package/dist/commands/issue/list.js.map +1 -0
  40. package/dist/commands/issue/view.d.ts +12 -0
  41. package/dist/commands/issue/view.js +64 -0
  42. package/dist/commands/issue/view.js.map +1 -0
  43. package/dist/commands/pr/create.d.ts +14 -0
  44. package/dist/commands/pr/create.js +120 -0
  45. package/dist/commands/pr/create.js.map +1 -0
  46. package/dist/commands/pr/list.d.ts +14 -0
  47. package/dist/commands/pr/list.js +71 -0
  48. package/dist/commands/pr/list.js.map +1 -0
  49. package/dist/commands/pr/merge.d.ts +16 -0
  50. package/dist/commands/pr/merge.js +59 -0
  51. package/dist/commands/pr/merge.js.map +1 -0
  52. package/dist/commands/pr/view.d.ts +15 -0
  53. package/dist/commands/pr/view.js +57 -0
  54. package/dist/commands/pr/view.js.map +1 -0
  55. package/dist/commands/release/create.d.ts +16 -0
  56. package/dist/commands/release/create.js +194 -0
  57. package/dist/commands/release/create.js.map +1 -0
  58. package/dist/commands/repo/get-remote.d.ts +9 -0
  59. package/dist/commands/repo/get-remote.js +22 -0
  60. package/dist/commands/repo/get-remote.js.map +1 -0
  61. package/dist/commands/repo/set-remote.d.ts +12 -0
  62. package/dist/commands/repo/set-remote.js +20 -0
  63. package/dist/commands/repo/set-remote.js.map +1 -0
  64. package/dist/config/index.d.ts +3 -0
  65. package/dist/config/index.js +41 -0
  66. package/dist/config/index.js.map +1 -0
  67. package/dist/git/index.d.ts +11 -0
  68. package/dist/git/index.js +51 -0
  69. package/dist/git/index.js.map +1 -0
  70. package/dist/index.d.ts +7 -0
  71. package/dist/index.js +36 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/ui/index.d.ts +6 -0
  74. package/dist/ui/index.js +38 -0
  75. package/dist/ui/index.js.map +1 -0
  76. package/package.json +71 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const core_1 = require("@oclif/core");
37
+ const readline = __importStar(require("node:readline"));
38
+ const node_child_process_1 = require("node:child_process");
39
+ const base_command_1 = require("../../base-command");
40
+ const index_1 = require("../../config/index");
41
+ const index_2 = require("../../git/index");
42
+ const prs_1 = require("../../api/prs");
43
+ const client_1 = require("../../api/client");
44
+ const index_3 = require("../../ui/index");
45
+ async function prompt(question) {
46
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
47
+ return new Promise((resolve) => {
48
+ rl.question(question, (answer) => {
49
+ rl.close();
50
+ resolve(answer.trim());
51
+ });
52
+ });
53
+ }
54
+ function getCurrentBranch() {
55
+ try {
56
+ return (0, node_child_process_1.execSync)('git branch --show-current', { encoding: 'utf8' }).trim();
57
+ }
58
+ catch {
59
+ return '';
60
+ }
61
+ }
62
+ class PRCreate extends base_command_1.BaseCommand {
63
+ async run() {
64
+ const { flags } = await this.parse(PRCreate);
65
+ const token = (0, index_1.getToken)();
66
+ if (!token)
67
+ this.error('Not logged in. Run: gc auth login');
68
+ let owner, repo;
69
+ try {
70
+ ;
71
+ ({ owner, repo } = (0, index_2.resolveRepo)());
72
+ }
73
+ catch (err) {
74
+ this.error(err.message);
75
+ }
76
+ const head = flags.head ?? getCurrentBranch();
77
+ if (!head)
78
+ this.error('Could not determine current branch. Use --head to specify.');
79
+ const title = flags.title ?? (await prompt('Title: '));
80
+ if (!title)
81
+ this.error('Title cannot be empty.');
82
+ const body = flags.body ?? (await prompt('Description (press Enter to skip): '));
83
+ try {
84
+ const pr = await (0, prs_1.createPR)(token, owner, repo, {
85
+ title,
86
+ body: body || '',
87
+ head,
88
+ base: flags.base,
89
+ draft: flags.draft,
90
+ });
91
+ if (flags.json) {
92
+ (0, index_3.printJson)(pr);
93
+ }
94
+ else {
95
+ this.log(`Created PR #${pr.number}: ${pr.title}`);
96
+ this.log(pr.html_url);
97
+ }
98
+ }
99
+ catch (err) {
100
+ if (err instanceof client_1.GitCodeError)
101
+ this.error(err.message);
102
+ this.error('Could not connect to GitCode. Check your internet connection.');
103
+ }
104
+ }
105
+ }
106
+ PRCreate.description = 'Create a pull request';
107
+ PRCreate.examples = [
108
+ '<%= config.bin %> pr create',
109
+ '<%= config.bin %> pr create --title "Fix bug" --body "Details" --base main',
110
+ ];
111
+ PRCreate.flags = {
112
+ ...base_command_1.BaseCommand.baseFlags,
113
+ title: core_1.Flags.string({ description: 'PR title' }),
114
+ body: core_1.Flags.string({ description: 'PR description' }),
115
+ base: core_1.Flags.string({ description: 'Target branch (default: main)', default: 'main' }),
116
+ head: core_1.Flags.string({ description: 'Source branch (default: current branch)' }),
117
+ draft: core_1.Flags.boolean({ description: 'Create as draft PR', default: false }),
118
+ };
119
+ exports.default = PRCreate;
120
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class PRList extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ state: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ author: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ assignee: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ reviewer: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ limit: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const index_1 = require("../../config/index");
6
+ const index_2 = require("../../git/index");
7
+ const prs_1 = require("../../api/prs");
8
+ const client_1 = require("../../api/client");
9
+ const index_3 = require("../../ui/index");
10
+ class PRList extends base_command_1.BaseCommand {
11
+ async run() {
12
+ const { flags } = await this.parse(PRList);
13
+ const token = (0, index_1.getToken)();
14
+ if (!token)
15
+ this.error('Not logged in. Run: gc auth login');
16
+ let owner, repo;
17
+ try {
18
+ ;
19
+ ({ owner, repo } = (0, index_2.resolveRepo)());
20
+ }
21
+ catch (err) {
22
+ this.error(err.message);
23
+ }
24
+ try {
25
+ const prs = await (0, prs_1.listPRs)(token, owner, repo, {
26
+ state: flags.state,
27
+ author: flags.author,
28
+ assignee: flags.assignee,
29
+ reviewer: flags.reviewer,
30
+ per_page: flags.limit,
31
+ });
32
+ if (flags.json) {
33
+ (0, index_3.printJson)(prs);
34
+ return;
35
+ }
36
+ (0, index_3.printTable)(prs.map((p) => ({
37
+ number: `#${p.number}`,
38
+ title: p.title,
39
+ state: p.draft ? 'draft' : p.state,
40
+ author: p.user.login,
41
+ base: p.base.ref,
42
+ created: (0, index_3.formatDate)(p.created_at),
43
+ })), ['number', 'title', 'state', 'author', 'base', 'created']);
44
+ }
45
+ catch (err) {
46
+ if (err instanceof client_1.GitCodeError)
47
+ this.error(err.message);
48
+ this.error('Could not connect to GitCode. Check your internet connection.');
49
+ }
50
+ }
51
+ }
52
+ PRList.description = 'List pull requests for the current repository';
53
+ PRList.examples = [
54
+ '<%= config.bin %> pr list',
55
+ '<%= config.bin %> pr list --state merged',
56
+ '<%= config.bin %> pr list --author alice',
57
+ ];
58
+ PRList.flags = {
59
+ ...base_command_1.BaseCommand.baseFlags,
60
+ state: core_1.Flags.string({
61
+ description: 'Filter by state: open, closed, merged, locked, all',
62
+ default: 'open',
63
+ options: ['open', 'closed', 'merged', 'locked', 'all'],
64
+ }),
65
+ author: core_1.Flags.string({ description: 'Filter by PR author username' }),
66
+ assignee: core_1.Flags.string({ description: 'Filter by assignee username' }),
67
+ reviewer: core_1.Flags.string({ description: 'Filter by reviewer username' }),
68
+ limit: core_1.Flags.integer({ description: 'Max number of PRs to show', default: 30 }),
69
+ };
70
+ exports.default = PRList;
71
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/pr/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class PRMerge extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ number: import("@oclif/core/lib/interfaces").Arg<number, {
7
+ max?: number | undefined;
8
+ min?: number | undefined;
9
+ }>;
10
+ };
11
+ static flags: {
12
+ method: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const index_1 = require("../../config/index");
6
+ const index_2 = require("../../git/index");
7
+ const prs_1 = require("../../api/prs");
8
+ const client_1 = require("../../api/client");
9
+ const index_3 = require("../../ui/index");
10
+ class PRMerge extends base_command_1.BaseCommand {
11
+ async run() {
12
+ const { args, flags } = await this.parse(PRMerge);
13
+ const token = (0, index_1.getToken)();
14
+ if (!token)
15
+ this.error('Not logged in. Run: gc auth login');
16
+ let owner, repo;
17
+ try {
18
+ ;
19
+ ({ owner, repo } = (0, index_2.resolveRepo)());
20
+ }
21
+ catch (err) {
22
+ this.error(err.message);
23
+ }
24
+ try {
25
+ const result = await (0, prs_1.mergePR)(token, owner, repo, args.number, {
26
+ merge_method: flags.method,
27
+ });
28
+ if (flags.json) {
29
+ (0, index_3.printJson)(result);
30
+ }
31
+ else {
32
+ this.log(`Merged PR #${args.number} (${result.sha.slice(0, 8)})`);
33
+ }
34
+ }
35
+ catch (err) {
36
+ if (err instanceof client_1.GitCodeError)
37
+ this.error(err.message);
38
+ this.error('Could not connect to GitCode. Check your internet connection.');
39
+ }
40
+ }
41
+ }
42
+ PRMerge.description = 'Merge a pull request';
43
+ PRMerge.examples = [
44
+ '<%= config.bin %> pr merge 5',
45
+ '<%= config.bin %> pr merge 5 --method squash',
46
+ ];
47
+ PRMerge.args = {
48
+ number: core_1.Args.integer({ description: 'PR number', required: true }),
49
+ };
50
+ PRMerge.flags = {
51
+ ...base_command_1.BaseCommand.baseFlags,
52
+ method: core_1.Flags.string({
53
+ description: 'Merge method: merge, squash, rebase',
54
+ default: 'merge',
55
+ options: ['merge', 'squash', 'rebase'],
56
+ }),
57
+ };
58
+ exports.default = PRMerge;
59
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":";;AAAA,sCAAyC;AACzC,qDAAgD;AAChD,8CAA6C;AAC7C,2CAA6C;AAC7C,uCAAuC;AACvC,6CAA+C;AAC/C,0CAA0C;AAE1C,MAAqB,OAAQ,SAAQ,0BAAW;IAkB9C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEjD,MAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAA;QACxB,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAE3D,IAAI,KAAa,EAAE,IAAY,CAAA;QAC/B,IAAI,CAAC;YACH,CAAC;YAAA,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAW,GAAE,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,aAAO,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;gBAC5D,YAAY,EAAE,KAAK,CAAC,MAAM;aAC3B,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAA,iBAAS,EAAC,MAAM,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,qBAAY;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxD,IAAI,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;;AA5CM,mBAAW,GAAG,sBAAsB,CAAA;AACpC,gBAAQ,GAAG;IAChB,8BAA8B;IAC9B,8CAA8C;CAC/C,CAAA;AACM,YAAI,GAAG;IACZ,MAAM,EAAE,WAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACnE,CAAA;AACM,aAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACvC,CAAC;CACH,CAAA;kBAhBkB,OAAO"}
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class PRView extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ number: import("@oclif/core/lib/interfaces").Arg<number, {
7
+ max?: number | undefined;
8
+ min?: number | undefined;
9
+ }>;
10
+ };
11
+ static flags: {
12
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../base-command");
5
+ const index_1 = require("../../config/index");
6
+ const index_2 = require("../../git/index");
7
+ const prs_1 = require("../../api/prs");
8
+ const client_1 = require("../../api/client");
9
+ const index_3 = require("../../ui/index");
10
+ class PRView extends base_command_1.BaseCommand {
11
+ async run() {
12
+ const { args, flags } = await this.parse(PRView);
13
+ const token = (0, index_1.getToken)();
14
+ if (!token)
15
+ this.error('Not logged in. Run: gc auth login');
16
+ let owner, repo;
17
+ try {
18
+ ;
19
+ ({ owner, repo } = (0, index_2.resolveRepo)());
20
+ }
21
+ catch (err) {
22
+ this.error(err.message);
23
+ }
24
+ try {
25
+ const pr = await (0, prs_1.getPR)(token, owner, repo, args.number);
26
+ if (flags.json) {
27
+ (0, index_3.printJson)(pr);
28
+ return;
29
+ }
30
+ this.log(`#${pr.number} ${pr.title}`);
31
+ this.log(`State: ${pr.draft ? 'draft' : pr.state}`);
32
+ this.log(`Author: ${pr.user.login}`);
33
+ this.log(`Head: ${pr.head.ref}`);
34
+ this.log(`Base: ${pr.base.ref}`);
35
+ this.log(`Mergeable: ${pr.mergeable ? 'yes' : 'no'}`);
36
+ this.log(`Created: ${(0, index_3.formatDate)(pr.created_at)}`);
37
+ if (pr.merged_at)
38
+ this.log(`Merged: ${(0, index_3.formatDate)(pr.merged_at)}`);
39
+ this.log(`URL: ${pr.html_url}`);
40
+ this.log('');
41
+ this.log(pr.body || '(no description)');
42
+ }
43
+ catch (err) {
44
+ if (err instanceof client_1.GitCodeError)
45
+ this.error(err.message);
46
+ this.error('Could not connect to GitCode. Check your internet connection.');
47
+ }
48
+ }
49
+ }
50
+ PRView.description = 'Show details of a single pull request';
51
+ PRView.examples = ['<%= config.bin %> pr view 5'];
52
+ PRView.args = {
53
+ number: core_1.Args.integer({ description: 'PR number', required: true }),
54
+ };
55
+ PRView.flags = { ...base_command_1.BaseCommand.baseFlags };
56
+ exports.default = PRView;
57
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/pr/view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class ReleaseCreate extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ version: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ notes: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ prerelease: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ private generateReleaseNotes;
15
+ private formatNotes;
16
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const node_child_process_1 = require("node:child_process");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ const base_command_1 = require("../../base-command");
8
+ const index_1 = require("../../config/index");
9
+ const index_2 = require("../../git/index");
10
+ const client_1 = require("../../api/client");
11
+ const releases_1 = require("../../api/releases");
12
+ const index_3 = require("../../ui/index");
13
+ const SEMVER_RE = /^\d+\.\d+\.\d+(-[\w.]+)?$/;
14
+ class ReleaseCreate extends base_command_1.BaseCommand {
15
+ async run() {
16
+ const { args, flags } = await this.parse(ReleaseCreate);
17
+ const token = (0, index_1.getToken)();
18
+ if (!token)
19
+ this.error('Not logged in. Run: gc auth login');
20
+ let owner, repo;
21
+ try {
22
+ ;
23
+ ({ owner, repo } = (0, index_2.resolveRepo)());
24
+ }
25
+ catch (err) {
26
+ this.error(err.message);
27
+ }
28
+ // Step 0: Pre-flight checks
29
+ const status = (0, node_child_process_1.execSync)('git status --porcelain', { encoding: 'utf8' }).trim();
30
+ if (status) {
31
+ this.error('Working directory is not clean. Commit or stash your changes first.');
32
+ }
33
+ // Step 1: Resolve version — compute tag FIRST, check it, THEN bump
34
+ const pkgPath = (0, node_path_1.join)(process.cwd(), 'package.json');
35
+ const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgPath, 'utf8'));
36
+ let version;
37
+ let bumped = false;
38
+ if (args.version) {
39
+ version = args.version.replace(/^v/, '');
40
+ }
41
+ else {
42
+ version = pkg.version;
43
+ }
44
+ if (!SEMVER_RE.test(version)) {
45
+ this.error(`Invalid version: ${version}. Expected semver format (e.g. 1.2.3).`);
46
+ }
47
+ const tagName = `v${version}`;
48
+ // Check tag doesn't already exist (before any file modifications)
49
+ const existingTag = (0, node_child_process_1.execSync)(`git tag -l "${tagName}"`, { encoding: 'utf8' }).trim();
50
+ if (existingTag) {
51
+ this.error(`Tag ${tagName} already exists.`);
52
+ }
53
+ // Now bump package.json if needed (after pre-flight checks pass)
54
+ if (args.version && version !== pkg.version) {
55
+ (0, node_child_process_1.execSync)(`npm version ${version} --no-git-tag-version`, {
56
+ encoding: 'utf8',
57
+ stdio: 'pipe',
58
+ });
59
+ bumped = true;
60
+ this.log(`Bumped version to ${version}`);
61
+ }
62
+ // Step 2: Run tests
63
+ this.log('Running tests...');
64
+ try {
65
+ (0, node_child_process_1.execSync)('npm test', { encoding: 'utf8', stdio: 'inherit' });
66
+ }
67
+ catch {
68
+ this.error('Tests failed. Release aborted.');
69
+ }
70
+ // Step 3: Build & pack
71
+ this.log('Building...');
72
+ (0, node_child_process_1.execSync)('npm run build', { encoding: 'utf8', stdio: 'inherit' });
73
+ this.log('Packing binaries...');
74
+ (0, node_child_process_1.execSync)('npm run pack', { encoding: 'utf8', stdio: 'inherit' });
75
+ // Step 4: Git commit & tag
76
+ if (bumped) {
77
+ (0, node_child_process_1.execSync)('git add package.json package-lock.json', { encoding: 'utf8' });
78
+ (0, node_child_process_1.execSync)(`git commit -m "chore: bump version to ${version}"`, { encoding: 'utf8' });
79
+ }
80
+ (0, node_child_process_1.execSync)(`git tag "${tagName}"`, { encoding: 'utf8' });
81
+ this.log(`Created tag ${tagName}`);
82
+ // Step 5: Git push
83
+ this.log('Pushing to remote...');
84
+ try {
85
+ (0, node_child_process_1.execSync)('git push', { encoding: 'utf8', stdio: 'inherit' });
86
+ (0, node_child_process_1.execSync)('git push --tags', { encoding: 'utf8', stdio: 'inherit' });
87
+ }
88
+ catch {
89
+ this.error(`Push failed. Tag and commit exist locally.\n` +
90
+ `Push manually with \`git push && git push --tags\` then retry.`);
91
+ }
92
+ // Step 6: Create release
93
+ const body = flags.notes ?? this.generateReleaseNotes();
94
+ const branch = (0, node_child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { encoding: 'utf8' }).trim();
95
+ this.log('Creating release on GitCode...');
96
+ let release;
97
+ try {
98
+ release = await (0, releases_1.createRelease)(token, owner, repo, {
99
+ tag_name: tagName,
100
+ name: tagName,
101
+ body,
102
+ prerelease: flags.prerelease,
103
+ target_commitish: branch,
104
+ });
105
+ }
106
+ catch (err) {
107
+ if (err instanceof client_1.GitCodeError) {
108
+ this.error(`${err.message}\n` +
109
+ `Tag ${tagName} is pushed. Fix the issue and retry, or create the release manually on GitCode.`);
110
+ }
111
+ throw err;
112
+ }
113
+ // Step 7: Upload assets
114
+ const assets = [
115
+ (0, node_path_1.join)(process.cwd(), 'dist-bin', 'oh-gc-linux-x64.tar.gz'),
116
+ (0, node_path_1.join)(process.cwd(), 'dist-bin', 'oh-gc-win-x64.zip'),
117
+ ];
118
+ for (const assetPath of assets) {
119
+ const name = assetPath.split('/').pop();
120
+ this.log(`Uploading ${name}...`);
121
+ try {
122
+ await (0, releases_1.uploadReleaseAsset)(token, owner, repo, tagName, assetPath);
123
+ }
124
+ catch (err) {
125
+ if (err instanceof client_1.GitCodeError) {
126
+ this.error(`Failed to upload ${name}: ${err.message}\n` +
127
+ `Re-upload manually or delete the release and retry.`);
128
+ }
129
+ throw err;
130
+ }
131
+ }
132
+ // Step 8: Output summary
133
+ if (flags.json) {
134
+ // Re-fetch release to include uploaded asset details
135
+ const fullRelease = await (0, releases_1.getRelease)(token, owner, repo, tagName);
136
+ (0, index_3.printJson)(fullRelease);
137
+ }
138
+ else {
139
+ this.log(`\nRelease ${tagName} published!`);
140
+ this.log(`Assets: oh-gc-linux-x64.tar.gz, oh-gc-win-x64.zip`);
141
+ }
142
+ }
143
+ generateReleaseNotes() {
144
+ try {
145
+ const lastTag = (0, node_child_process_1.execSync)('git describe --tags --abbrev=0 HEAD~1', {
146
+ encoding: 'utf8',
147
+ stdio: ['pipe', 'pipe', 'pipe'],
148
+ }).trim();
149
+ const log = (0, node_child_process_1.execSync)(`git log ${lastTag}..HEAD --oneline`, { encoding: 'utf8' }).trim();
150
+ return this.formatNotes(log);
151
+ }
152
+ catch {
153
+ // No previous tag — try all commits
154
+ try {
155
+ const log = (0, node_child_process_1.execSync)('git log --oneline', { encoding: 'utf8' }).trim();
156
+ if (!log)
157
+ return 'Initial release';
158
+ return this.formatNotes(log);
159
+ }
160
+ catch {
161
+ return 'Initial release';
162
+ }
163
+ }
164
+ }
165
+ formatNotes(log) {
166
+ const lines = log.split('\n');
167
+ const cap = 50;
168
+ const shown = lines.slice(0, cap);
169
+ const notes = shown.map((line) => `- ${line}`).join('\n');
170
+ if (lines.length > cap) {
171
+ return `${notes}\n\n...and ${lines.length - cap} more commits`;
172
+ }
173
+ return notes;
174
+ }
175
+ }
176
+ ReleaseCreate.description = 'Build, test, and publish a release to GitCode';
177
+ ReleaseCreate.examples = [
178
+ '<%= config.bin %> release create',
179
+ '<%= config.bin %> release create v0.2.0',
180
+ '<%= config.bin %> release create v0.2.0 --prerelease',
181
+ ];
182
+ ReleaseCreate.args = {
183
+ version: core_1.Args.string({
184
+ description: 'Version tag (e.g. v0.2.0). Defaults to version in package.json.',
185
+ required: false,
186
+ }),
187
+ };
188
+ ReleaseCreate.flags = {
189
+ ...base_command_1.BaseCommand.baseFlags,
190
+ notes: core_1.Flags.string({ description: 'Override auto-generated release notes' }),
191
+ prerelease: core_1.Flags.boolean({ description: 'Mark as prerelease', default: false }),
192
+ };
193
+ exports.default = ReleaseCreate;
194
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/release/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class RepoGetRemote extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
+ };
8
+ run(): Promise<void>;
9
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const base_command_1 = require("../../base-command");
4
+ const index_1 = require("../../git/index");
5
+ const index_2 = require("../../ui/index");
6
+ class RepoGetRemote extends base_command_1.BaseCommand {
7
+ async run() {
8
+ const { flags } = await this.parse(RepoGetRemote);
9
+ const remote = (0, index_1.getConfiguredRemote)();
10
+ if (flags.json) {
11
+ (0, index_2.printJson)({ remote });
12
+ }
13
+ else {
14
+ this.log(remote);
15
+ }
16
+ }
17
+ }
18
+ RepoGetRemote.description = 'Show the git remote gc is using for this repository';
19
+ RepoGetRemote.examples = ['<%= config.bin %> repo get-remote'];
20
+ RepoGetRemote.flags = { ...base_command_1.BaseCommand.baseFlags };
21
+ exports.default = RepoGetRemote;
22
+ //# sourceMappingURL=get-remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-remote.js","sourceRoot":"","sources":["../../../src/commands/repo/get-remote.ts"],"names":[],"mappings":";;AAAA,qDAAgD;AAChD,2CAAqD;AACrD,0CAA0C;AAE1C,MAAqB,aAAc,SAAQ,0BAAW;IAKpD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,IAAA,2BAAmB,GAAE,CAAA;QACpC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAA,iBAAS,EAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;;AAZM,yBAAW,GAAG,qDAAqD,CAAA;AACnE,sBAAQ,GAAG,CAAC,mCAAmC,CAAC,CAAA;AAChD,mBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAA;kBAHxB,aAAa"}