@kitsi/pack-github-release 0.0.5 → 0.0.8
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.
- package/dist/checks/gh-auth.d.ts +1 -1
- package/dist/checks/gh-auth.d.ts.map +1 -1
- package/dist/checks/gh-auth.js +3 -17
- package/dist/checks/gh-auth.js.map +1 -1
- package/dist/checks/gh-cli.d.ts +1 -1
- package/dist/checks/gh-cli.d.ts.map +1 -1
- package/dist/checks/gh-cli.js +3 -19
- package/dist/checks/gh-cli.js.map +1 -1
- package/dist/checks/github-token.d.ts +6 -0
- package/dist/checks/github-token.d.ts.map +1 -0
- package/dist/checks/github-token.js +23 -0
- package/dist/checks/github-token.js.map +1 -0
- package/dist/checks/http-client.d.ts +6 -0
- package/dist/checks/http-client.d.ts.map +1 -0
- package/dist/checks/http-client.js +19 -0
- package/dist/checks/http-client.js.map +1 -0
- package/dist/checks/index.d.ts +2 -0
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +2 -0
- package/dist/checks/index.js.map +1 -1
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +14 -3
- package/dist/release.js.map +1 -1
- package/dist/steps/create-release.d.ts +3 -1
- package/dist/steps/create-release.d.ts.map +1 -1
- package/dist/steps/create-release.js +43 -44
- package/dist/steps/create-release.js.map +1 -1
- package/dist/steps/detect-repository.d.ts +4 -0
- package/dist/steps/detect-repository.d.ts.map +1 -1
- package/dist/steps/detect-repository.js +17 -0
- package/dist/steps/detect-repository.js.map +1 -1
- package/dist/steps/github-api.d.ts +6 -0
- package/dist/steps/github-api.d.ts.map +1 -0
- package/dist/steps/github-api.js +41 -0
- package/dist/steps/github-api.js.map +1 -0
- package/dist/steps/index.d.ts +1 -1
- package/dist/steps/index.d.ts.map +1 -1
- package/dist/steps/index.js +1 -1
- package/dist/steps/index.js.map +1 -1
- package/dist/steps/preflight-checks.d.ts +5 -5
- package/dist/steps/preflight-checks.d.ts.map +1 -1
- package/dist/steps/preflight-checks.js +27 -19
- package/dist/steps/preflight-checks.js.map +1 -1
- package/dist/steps/upload-assets.d.ts +7 -2
- package/dist/steps/upload-assets.d.ts.map +1 -1
- package/dist/steps/upload-assets.js +90 -20
- package/dist/steps/upload-assets.js.map +1 -1
- package/dist/types/release-options.d.ts +5 -0
- package/dist/types/release-options.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/checks/gh-auth.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CheckResult } from '../types/check-result.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Backwards-compatible alias for GitHub token checks.
|
|
4
4
|
*/
|
|
5
5
|
export declare function checkGhAuth(authenticated: boolean): CheckResult;
|
|
6
6
|
//# sourceMappingURL=gh-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gh-auth.d.ts","sourceRoot":"","sources":["../../src/checks/gh-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"gh-auth.d.ts","sourceRoot":"","sources":["../../src/checks/gh-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,OAAO,GAAG,WAAW,CAE/D"}
|
package/dist/checks/gh-auth.js
CHANGED
|
@@ -1,22 +1,8 @@
|
|
|
1
|
+
import { checkGithubToken } from './github-token.js';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Backwards-compatible alias for GitHub token checks.
|
|
3
4
|
*/
|
|
4
5
|
export function checkGhAuth(authenticated) {
|
|
5
|
-
|
|
6
|
-
return {
|
|
7
|
-
name: 'GitHub Authentication',
|
|
8
|
-
status: 'pass',
|
|
9
|
-
message: 'Authenticated with GitHub',
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
name: 'GitHub Authentication',
|
|
14
|
-
status: 'fail',
|
|
15
|
-
message: 'Not authenticated with GitHub',
|
|
16
|
-
remediation: `The GitHub CLI must be authenticated. Run:
|
|
17
|
-
gh auth login
|
|
18
|
-
|
|
19
|
-
Or set the GH_TOKEN or GITHUB_TOKEN environment variable.`,
|
|
20
|
-
};
|
|
6
|
+
return checkGithubToken(authenticated, 'GITHUB_TOKEN');
|
|
21
7
|
}
|
|
22
8
|
//# sourceMappingURL=gh-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gh-auth.js","sourceRoot":"","sources":["../../src/checks/gh-auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gh-auth.js","sourceRoot":"","sources":["../../src/checks/gh-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,OAAO,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/checks/gh-cli.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CheckResult } from '../types/check-result.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Backwards-compatible alias for HTTP client checks.
|
|
4
4
|
*/
|
|
5
5
|
export declare function checkGhCli(installed: boolean): CheckResult;
|
|
6
6
|
//# sourceMappingURL=gh-cli.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gh-cli.d.ts","sourceRoot":"","sources":["../../src/checks/gh-cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"gh-cli.d.ts","sourceRoot":"","sources":["../../src/checks/gh-cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAE1D"}
|
package/dist/checks/gh-cli.js
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
|
+
import { checkHttpClient } from './http-client.js';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Backwards-compatible alias for HTTP client checks.
|
|
3
4
|
*/
|
|
4
5
|
export function checkGhCli(installed) {
|
|
5
|
-
|
|
6
|
-
return {
|
|
7
|
-
name: 'GitHub CLI',
|
|
8
|
-
status: 'pass',
|
|
9
|
-
message: 'GitHub CLI (gh) is installed',
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
name: 'GitHub CLI',
|
|
14
|
-
status: 'fail',
|
|
15
|
-
message: 'GitHub CLI (gh) is not installed',
|
|
16
|
-
remediation: `This pack requires the GitHub CLI. Install it from:
|
|
17
|
-
https://cli.github.com/
|
|
18
|
-
|
|
19
|
-
On macOS: brew install gh
|
|
20
|
-
On Linux: See https://github.com/cli/cli/blob/trunk/docs/install_linux.md
|
|
21
|
-
On Windows: winget install --id GitHub.cli`,
|
|
22
|
-
};
|
|
6
|
+
return checkHttpClient(installed);
|
|
23
7
|
}
|
|
24
8
|
//# sourceMappingURL=gh-cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gh-cli.js","sourceRoot":"","sources":["../../src/checks/gh-cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gh-cli.js","sourceRoot":"","sources":["../../src/checks/gh-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAkB;IAC3C,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-token.d.ts","sourceRoot":"","sources":["../../src/checks/github-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAmBhF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifies that a GitHub token is available.
|
|
3
|
+
*/
|
|
4
|
+
export function checkGithubToken(present, tokenEnv) {
|
|
5
|
+
if (present) {
|
|
6
|
+
return {
|
|
7
|
+
name: 'GitHub Token',
|
|
8
|
+
status: 'pass',
|
|
9
|
+
message: `Token available via ${tokenEnv}`,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
name: 'GitHub Token',
|
|
14
|
+
status: 'fail',
|
|
15
|
+
message: `Missing ${tokenEnv}`,
|
|
16
|
+
remediation: `Set ${tokenEnv} with a GitHub access token.
|
|
17
|
+
|
|
18
|
+
For GitHub Actions:
|
|
19
|
+
env:
|
|
20
|
+
${tokenEnv}: \${{ secrets.GITHUB_TOKEN }}`,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=github-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-token.js","sourceRoot":"","sources":["../../src/checks/github-token.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,QAAgB;IACjE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,uBAAuB,QAAQ,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,WAAW,QAAQ,EAAE;QAC9B,WAAW,EAAE,OAAO,QAAQ;;;;QAIxB,QAAQ,gCAAgC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/checks/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,CAgB/D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verifies that a native HTTP client (fetch) is available.
|
|
3
|
+
*/
|
|
4
|
+
export function checkHttpClient(installed) {
|
|
5
|
+
if (installed) {
|
|
6
|
+
return {
|
|
7
|
+
name: 'HTTP Client',
|
|
8
|
+
status: 'pass',
|
|
9
|
+
message: 'fetch is available',
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
name: 'HTTP Client',
|
|
14
|
+
status: 'fail',
|
|
15
|
+
message: 'fetch is not available',
|
|
16
|
+
remediation: 'This pack requires a runtime with fetch support (Node 18+ or Bun). Upgrade the runtime.',
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/checks/http-client.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,oBAAoB;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,wBAAwB;QACjC,WAAW,EACT,yFAAyF;KAC5F,CAAC;AACJ,CAAC"}
|
package/dist/checks/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { checkGhCli } from './gh-cli.js';
|
|
2
2
|
export { checkGhAuth } from './gh-auth.js';
|
|
3
|
+
export { checkGithubToken } from './github-token.js';
|
|
4
|
+
export { checkHttpClient } from './http-client.js';
|
|
3
5
|
export { checkRepository } from './repository.js';
|
|
4
6
|
export { checkTags } from './tags.js';
|
|
5
7
|
import type { CheckResult } from '../types/check-result.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAgBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAE3D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAgBjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAE3D"}
|
package/dist/checks/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { checkGhCli } from './gh-cli.js';
|
|
2
2
|
export { checkGhAuth } from './gh-auth.js';
|
|
3
|
+
export { checkGithubToken } from './github-token.js';
|
|
4
|
+
export { checkHttpClient } from './http-client.js';
|
|
3
5
|
export { checkRepository } from './repository.js';
|
|
4
6
|
export { checkTags } from './tags.js';
|
|
5
7
|
/**
|
package/dist/checks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,MAAM,KAAK,GAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAExD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,MAAM,KAAK,GAAa,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAEjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GACR,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAExD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/release.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CAAC,IAAI,GAAE,cAAmB,oCAkBhD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,IAAI,GAAE,cAAmB;;;;
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CAAC,IAAI,GAAE,cAAmB,oCAkBhD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,IAAI,GAAE,cAAmB;;;;EAsE9C"}
|
package/dist/release.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { emit, plan, step, summary, task, use } from '@kitsi/cli';
|
|
1
|
+
import { emit, plan, secret, step, summary, task, use } from '@kitsi/cli';
|
|
2
2
|
import { refs } from './refs.js';
|
|
3
3
|
import { createRelease } from './steps/create-release.js';
|
|
4
4
|
import { runPreflightChecks } from './steps/preflight-checks.js';
|
|
@@ -59,16 +59,20 @@ export function release(opts = {}) {
|
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
61
|
export function tasks(opts = {}) {
|
|
62
|
+
const tokenEnv = opts.tokenEnv ?? 'GITHUB_TOKEN';
|
|
63
|
+
const githubToken = secret(tokenEnv);
|
|
62
64
|
// Preflight check task
|
|
63
65
|
const preflight = task('github-release:preflight')
|
|
64
66
|
.cache({ enabled: false })
|
|
67
|
+
.env(tokenEnv, githubToken)
|
|
65
68
|
.steps(step('Run Preflight Checks', function* (_ctx) {
|
|
66
|
-
yield* runPreflightChecks(opts.repository, opts.packages);
|
|
69
|
+
yield* runPreflightChecks(opts.repository, opts.packages, tokenEnv);
|
|
67
70
|
}));
|
|
68
71
|
// Create releases task
|
|
69
72
|
const create = task('github-release:create')
|
|
70
73
|
.needs(preflight)
|
|
71
74
|
.cache({ enabled: false })
|
|
75
|
+
.env(tokenEnv, githubToken)
|
|
72
76
|
.steps(step('Create GitHub Releases', function* (_ctx) {
|
|
73
77
|
const packages = yield* resolvePackages(opts);
|
|
74
78
|
if (packages.length === 0) {
|
|
@@ -83,6 +87,7 @@ export function tasks(opts = {}) {
|
|
|
83
87
|
const upload = task('github-release:upload')
|
|
84
88
|
.needs(create)
|
|
85
89
|
.cache({ enabled: false })
|
|
90
|
+
.env(tokenEnv, githubToken)
|
|
86
91
|
.steps(step('Upload Release Assets', function* (_ctx) {
|
|
87
92
|
const packages = opts.packages ?? [];
|
|
88
93
|
const packagesWithAssets = packages.filter((p) => p.assets && p.assets.length > 0);
|
|
@@ -94,7 +99,11 @@ export function tasks(opts = {}) {
|
|
|
94
99
|
for (const pkg of packagesWithAssets) {
|
|
95
100
|
if (!pkg.assets)
|
|
96
101
|
continue;
|
|
97
|
-
const uploaded = yield* uploadAssets(pkg.tagName, pkg.assets,
|
|
102
|
+
const uploaded = yield* uploadAssets(pkg.tagName, pkg.assets, {
|
|
103
|
+
dryRun: opts.dryRun,
|
|
104
|
+
repository: opts.repository,
|
|
105
|
+
tokenEnv,
|
|
106
|
+
});
|
|
98
107
|
if (uploaded.length > 0) {
|
|
99
108
|
yield summary.md(`Uploaded ${uploaded.length} asset(s) to ${pkg.tagName}`);
|
|
100
109
|
}
|
|
@@ -148,6 +157,8 @@ function* createReleases(packages, opts) {
|
|
|
148
157
|
latest: opts.latest,
|
|
149
158
|
discussionCategory: opts.discussionCategory,
|
|
150
159
|
dryRun: opts.dryRun,
|
|
160
|
+
repository: opts.repository,
|
|
161
|
+
tokenEnv: opts.tokenEnv ?? 'GITHUB_TOKEN',
|
|
151
162
|
});
|
|
152
163
|
if (result) {
|
|
153
164
|
results.push(result);
|
package/dist/release.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../src/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ export interface CreateReleaseOptions {
|
|
|
7
7
|
latest?: boolean;
|
|
8
8
|
discussionCategory?: string;
|
|
9
9
|
dryRun?: boolean;
|
|
10
|
+
repository?: string;
|
|
11
|
+
tokenEnv?: string;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Creates a GitHub release for a package.
|
|
13
|
-
* Yields
|
|
15
|
+
* Yields HTTP ops and returns the release result.
|
|
14
16
|
*/
|
|
15
17
|
export declare function createRelease(pkg: PackageReleaseConfig, opts?: CreateReleaseOptions): Generator<unknown, ReleaseResult | null, unknown>;
|
|
16
18
|
//# sourceMappingURL=create-release.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-release.d.ts","sourceRoot":"","sources":["../../src/steps/create-release.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-release.d.ts","sourceRoot":"","sources":["../../src/steps/create-release.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAIhE,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsFD;;;GAGG;AACH,wBAAiB,aAAa,CAC5B,GAAG,EAAE,oBAAoB,EACzB,IAAI,GAAE,oBAAyB,GAC9B,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,EAAE,OAAO,CAAC,CA8BnD"}
|
|
@@ -1,35 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sh } from '@kitsi/cli';
|
|
2
|
+
import { resolveRepository } from './detect-repository.js';
|
|
3
|
+
import { buildGitHubRequest, formatGitHubApiError, parseGitHubJson } from './github-api.js';
|
|
2
4
|
/**
|
|
3
|
-
* Builds the
|
|
5
|
+
* Builds the GitHub API payload from options.
|
|
4
6
|
*/
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
function buildReleasePayload(pkg, opts) {
|
|
8
|
+
const payload = {
|
|
9
|
+
tag_name: pkg.tagName,
|
|
10
|
+
name: pkg.title ?? pkg.tagName,
|
|
11
|
+
draft: opts.draft ?? false,
|
|
12
|
+
prerelease: opts.prerelease ?? false,
|
|
9
13
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (opts.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
pushFlag('--generate-notes');
|
|
20
|
-
if (opts.latest === true)
|
|
21
|
-
pushFlag('--latest');
|
|
22
|
-
else if (opts.latest === false)
|
|
23
|
-
pushFlag('--latest=false');
|
|
14
|
+
if (opts.generateNotes !== false) {
|
|
15
|
+
payload.generate_release_notes = true;
|
|
16
|
+
}
|
|
17
|
+
if (opts.latest === true) {
|
|
18
|
+
payload.make_latest = 'true';
|
|
19
|
+
}
|
|
20
|
+
else if (opts.latest === false) {
|
|
21
|
+
payload.make_latest = 'false';
|
|
22
|
+
}
|
|
24
23
|
if (opts.discussionCategory) {
|
|
25
|
-
|
|
24
|
+
payload.discussion_category_name = opts.discussionCategory;
|
|
26
25
|
}
|
|
27
|
-
const title = pkg.title ?? pkg.tagName;
|
|
28
|
-
pushFlagValue('--title', title);
|
|
29
26
|
if (pkg.body) {
|
|
30
|
-
|
|
27
|
+
payload.body = pkg.body;
|
|
31
28
|
}
|
|
32
|
-
return
|
|
29
|
+
return payload;
|
|
33
30
|
}
|
|
34
31
|
/**
|
|
35
32
|
* Creates a dry run result for testing.
|
|
@@ -47,27 +44,25 @@ function createDryRunResult(pkg, opts) {
|
|
|
47
44
|
};
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
|
-
* Parses the release result from
|
|
47
|
+
* Parses the release result from GitHub API response.
|
|
51
48
|
*/
|
|
52
|
-
function parseReleaseResult(pkg,
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const idMatch = url.match(/\/releases\/tag\/([^/\s]+)/);
|
|
56
|
-
const id = (idMatch ? idMatch[1] : pkg.tagName) ?? '';
|
|
49
|
+
function parseReleaseResult(pkg, data, opts) {
|
|
50
|
+
const url = data.html_url ?? '';
|
|
51
|
+
const id = data.id ? String(data.id) : pkg.tagName;
|
|
57
52
|
return {
|
|
58
53
|
name: pkg.name,
|
|
59
54
|
version: pkg.version,
|
|
60
55
|
tagName: pkg.tagName,
|
|
61
56
|
url,
|
|
62
57
|
id,
|
|
63
|
-
isDraft: opts.draft ?? false,
|
|
64
|
-
isPrerelease: opts.prerelease ?? false,
|
|
58
|
+
isDraft: data.draft ?? opts.draft ?? false,
|
|
59
|
+
isPrerelease: data.prerelease ?? opts.prerelease ?? false,
|
|
65
60
|
uploadedAssets: [],
|
|
66
61
|
};
|
|
67
62
|
}
|
|
68
63
|
/**
|
|
69
64
|
* Creates a GitHub release for a package.
|
|
70
|
-
* Yields
|
|
65
|
+
* Yields HTTP ops and returns the release result.
|
|
71
66
|
*/
|
|
72
67
|
export function* createRelease(pkg, opts = {}) {
|
|
73
68
|
const tagName = pkg.tagName;
|
|
@@ -75,17 +70,21 @@ export function* createRelease(pkg, opts = {}) {
|
|
|
75
70
|
yield sh `echo "[DRY RUN] Would create release: ${tagName}"`.must();
|
|
76
71
|
return createDryRunResult(pkg, opts);
|
|
77
72
|
}
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const
|
|
85
|
-
const
|
|
86
|
-
if (
|
|
73
|
+
const repository = yield* resolveRepository(opts.repository);
|
|
74
|
+
if (!repository) {
|
|
75
|
+
return null; // Analysis mode
|
|
76
|
+
}
|
|
77
|
+
const payload = buildReleasePayload(pkg, opts);
|
|
78
|
+
const url = `https://api.github.com/repos/${repository}/releases`;
|
|
79
|
+
const request = buildGitHubRequest('POST', url, opts.tokenEnv ?? 'GITHUB_TOKEN').jsonBody(payload);
|
|
80
|
+
const response = (yield request);
|
|
81
|
+
if (response.body === '') {
|
|
87
82
|
return null; // Analysis mode
|
|
88
83
|
}
|
|
89
|
-
|
|
84
|
+
if (response.status < 200 || response.status >= 300) {
|
|
85
|
+
throw new Error(formatGitHubApiError(response.status, response.body));
|
|
86
|
+
}
|
|
87
|
+
const data = parseGitHubJson(response);
|
|
88
|
+
return parseReleaseResult(pkg, data, opts);
|
|
90
89
|
}
|
|
91
90
|
//# sourceMappingURL=create-release.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-release.js","sourceRoot":"","sources":["../../src/steps/create-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create-release.js","sourceRoot":"","sources":["../../src/steps/create-release.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,8 @@
|
|
|
3
3
|
* Yields shell commands and returns the repository in 'owner/repo' format.
|
|
4
4
|
*/
|
|
5
5
|
export declare function detectRepository(): Generator<unknown, string | null, unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* Resolves the repository or returns null during analysis.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveRepository(explicitRepo: string | undefined): Generator<unknown, string | null, unknown>;
|
|
6
10
|
//# sourceMappingURL=detect-repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-repository.d.ts","sourceRoot":"","sources":["../../src/steps/detect-repository.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAiB,gBAAgB,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CA+B9E"}
|
|
1
|
+
{"version":3,"file":"detect-repository.d.ts","sourceRoot":"","sources":["../../src/steps/detect-repository.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAiB,gBAAgB,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CA+B9E;AAED;;GAEG;AACH,wBAAiB,iBAAiB,CAChC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CAkB5C"}
|
|
@@ -29,4 +29,21 @@ export function* detectRepository() {
|
|
|
29
29
|
}
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Resolves the repository or returns null during analysis.
|
|
34
|
+
*/
|
|
35
|
+
export function* resolveRepository(explicitRepo) {
|
|
36
|
+
if (explicitRepo) {
|
|
37
|
+
return explicitRepo;
|
|
38
|
+
}
|
|
39
|
+
const detected = yield* detectRepository();
|
|
40
|
+
if (detected) {
|
|
41
|
+
return detected;
|
|
42
|
+
}
|
|
43
|
+
const analysisCheck = (yield sh `echo "analysis"`.stdout());
|
|
44
|
+
if (analysisCheck === '') {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
throw new Error('GitHub repository not found. Set the repository option or configure the origin git remote.');
|
|
48
|
+
}
|
|
32
49
|
//# sourceMappingURL=detect-repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-repository.js","sourceRoot":"","sources":["../../src/steps/detect-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,gBAAgB;IAC/B,4BAA4B;IAC5B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAA,kDAAkD,CAAC,MAAM,EAAE,CAAW,CAAC;IAElG,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,qCAAqC;IACrC,2CAA2C;IAC3C,2DAA2D;IAE3D,MAAM,QAAQ,GAAG;QACf,2CAA2C;QAC3C,2CAA2C;KAC5C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"detect-repository.js","sourceRoot":"","sources":["../../src/steps/detect-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,gBAAgB;IAC/B,4BAA4B;IAC5B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,CAAA,kDAAkD,CAAC,MAAM,EAAE,CAAW,CAAC;IAElG,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mDAAmD;IACnD,qCAAqC;IACrC,2CAA2C;IAC3C,2DAA2D;IAE3D,MAAM,QAAQ,GAAG;QACf,2CAA2C;QAC3C,2CAA2C;KAC5C,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,SAAS,CAAC,CAAC,iBAAiB,CAChC,YAAgC;IAEhC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,CAAA,iBAAiB,CAAC,MAAM,EAAE,CAAW,CAAC;IACrE,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { HttpBuilder, HttpMethod, HttpResponse } from '@kitsi/cli';
|
|
2
|
+
export declare const buildGitHubRequest: (method: HttpMethod, url: string, tokenEnv: string) => HttpBuilder;
|
|
3
|
+
export declare function parseGitHubJson<T>(response: HttpResponse): T;
|
|
4
|
+
export declare function formatGitHubApiError(status: number, body: string): string;
|
|
5
|
+
export declare function stripUploadUrlTemplate(uploadUrl: string): string;
|
|
6
|
+
//# sourceMappingURL=github-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../../src/steps/github-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIxE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,EAClB,KAAK,MAAM,EACX,UAAU,MAAM,KACf,WAKwD,CAAC;AAE5D,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAG,CAAC,CAM5D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { http, secret } from '@kitsi/cli';
|
|
2
|
+
const API_VERSION = '2022-11-28';
|
|
3
|
+
export const buildGitHubRequest = (method, url, tokenEnv) => http
|
|
4
|
+
.request(method, url)
|
|
5
|
+
.header('Accept', 'application/vnd.github+json')
|
|
6
|
+
.header('X-GitHub-Api-Version', API_VERSION)
|
|
7
|
+
.header('Authorization', ['Bearer ', secret(tokenEnv)]);
|
|
8
|
+
export function parseGitHubJson(response) {
|
|
9
|
+
try {
|
|
10
|
+
return JSON.parse(response.body);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
throw new Error('GitHub API response was not valid JSON.');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function formatGitHubApiError(status, body) {
|
|
17
|
+
const prefix = `GitHub API error (${status})`;
|
|
18
|
+
if (!body)
|
|
19
|
+
return prefix;
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(body);
|
|
22
|
+
let message = parsed.message ?? body;
|
|
23
|
+
if (parsed.errors && parsed.errors.length > 0) {
|
|
24
|
+
const details = parsed.errors
|
|
25
|
+
.map((error) => error.message)
|
|
26
|
+
.filter((value) => typeof value === 'string' && value.length > 0);
|
|
27
|
+
if (details.length > 0) {
|
|
28
|
+
message = `${message} (${details.join(', ')})`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return `${prefix}: ${message}`;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return `${prefix}: ${body}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function stripUploadUrlTemplate(uploadUrl) {
|
|
38
|
+
const braceIndex = uploadUrl.indexOf('{');
|
|
39
|
+
return braceIndex === -1 ? uploadUrl : uploadUrl.slice(0, braceIndex);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=github-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../src/steps/github-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAkB,EAClB,GAAW,EACX,QAAgB,EACH,EAAE,CACf,IAAI;KACD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KACpB,MAAM,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KAC/C,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC;KAC3C,MAAM,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,UAAU,eAAe,CAAI,QAAsB;IACvD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAM,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,qBAAqB,MAAM,GAAG,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA+D,CAAC;QAC9F,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;iBAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC7B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,GAAG,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,MAAM,KAAK,OAAO,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/steps/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createRelease } from './create-release.js';
|
|
2
2
|
export type { CreateReleaseOptions } from './create-release.js';
|
|
3
|
-
export { detectRepository } from './detect-repository.js';
|
|
3
|
+
export { detectRepository, resolveRepository } from './detect-repository.js';
|
|
4
4
|
export { runPreflightChecks } from './preflight-checks.js';
|
|
5
5
|
export { uploadAssets } from './upload-assets.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/steps/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createRelease } from './create-release.js';
|
|
2
|
-
export { detectRepository } from './detect-repository.js';
|
|
2
|
+
export { detectRepository, resolveRepository } from './detect-repository.js';
|
|
3
3
|
export { runPreflightChecks } from './preflight-checks.js';
|
|
4
4
|
export { uploadAssets } from './upload-assets.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/steps/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { CheckResult } from '../types/check-result.js';
|
|
2
2
|
import type { PackageReleaseConfig } from '../types/release-options.js';
|
|
3
3
|
/**
|
|
4
|
-
* Runs
|
|
4
|
+
* Runs HTTP client availability check.
|
|
5
5
|
*/
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function checkHttpClientStep(): CheckResult;
|
|
7
7
|
/**
|
|
8
|
-
* Runs GitHub
|
|
8
|
+
* Runs GitHub token availability check.
|
|
9
9
|
*/
|
|
10
|
-
export declare function
|
|
10
|
+
export declare function checkGithubTokenStep(tokenEnv: string): Generator<unknown, CheckResult | null, unknown>;
|
|
11
11
|
/**
|
|
12
12
|
* Detects and validates the GitHub repository.
|
|
13
13
|
*/
|
|
@@ -22,5 +22,5 @@ export declare function checkTagsStep(packages: PackageReleaseConfig[]): Generat
|
|
|
22
22
|
/**
|
|
23
23
|
* Runs all preflight checks and emits summary.
|
|
24
24
|
*/
|
|
25
|
-
export declare function runPreflightChecks(explicitRepo: string | undefined, packages: PackageReleaseConfig[] | undefined): Generator<unknown, void, unknown>;
|
|
25
|
+
export declare function runPreflightChecks(explicitRepo: string | undefined, packages: PackageReleaseConfig[] | undefined, tokenEnv?: string): Generator<unknown, void, unknown>;
|
|
26
26
|
//# sourceMappingURL=preflight-checks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight-checks.d.ts","sourceRoot":"","sources":["../../src/steps/preflight-checks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preflight-checks.d.ts","sourceRoot":"","sources":["../../src/steps/preflight-checks.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAGjD;AAED;;GAEG;AACH,wBAAiB,oBAAoB,CACnC,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,CAAC,CAWjD;AAED;;GAEG;AACH,wBAAiB,mBAAmB,CAClC,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,SAAS,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,OAAO,CAAC,CAchF;AAED;;GAEG;AACH,wBAAiB,aAAa,CAC5B,QAAQ,EAAE,oBAAoB,EAAE,GAC/B,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAa1C;AAED;;GAEG;AACH,wBAAiB,kBAAkB,CACjC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,SAAS,EAC5C,QAAQ,SAAiB,GACxB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAiCnC"}
|
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
import { emit, sh, summary } from '@kitsi/cli';
|
|
2
|
-
import {
|
|
2
|
+
import { checkGithubToken, checkHttpClient, checkRepository, checkTags, formatCheckResults, hasFailures, } from '../checks/index.js';
|
|
3
3
|
import { refs } from '../refs.js';
|
|
4
4
|
import { detectRepository } from './detect-repository.js';
|
|
5
|
+
import { buildGitHubRequest } from './github-api.js';
|
|
5
6
|
/**
|
|
6
|
-
* Runs
|
|
7
|
+
* Runs HTTP client availability check.
|
|
7
8
|
*/
|
|
8
|
-
export function
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
return null; // Analysis mode
|
|
12
|
-
}
|
|
13
|
-
return checkGhCli(ghVersion.trim() === 'yes');
|
|
9
|
+
export function checkHttpClientStep() {
|
|
10
|
+
const hasFetch = typeof fetch === 'function';
|
|
11
|
+
return checkHttpClient(hasFetch);
|
|
14
12
|
}
|
|
15
13
|
/**
|
|
16
|
-
* Runs GitHub
|
|
14
|
+
* Runs GitHub token availability check.
|
|
17
15
|
*/
|
|
18
|
-
export function*
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
export function* checkGithubTokenStep(tokenEnv) {
|
|
17
|
+
try {
|
|
18
|
+
const request = buildGitHubRequest('GET', 'https://api.github.com/user', tokenEnv);
|
|
19
|
+
const response = (yield request);
|
|
20
|
+
if (response.body === '') {
|
|
21
|
+
return null; // Analysis mode
|
|
22
|
+
}
|
|
23
|
+
return checkGithubToken(response.status >= 200 && response.status < 300, tokenEnv);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return checkGithubToken(false, tokenEnv);
|
|
27
|
+
}
|
|
21
28
|
}
|
|
22
29
|
/**
|
|
23
30
|
* Detects and validates the GitHub repository.
|
|
@@ -50,16 +57,17 @@ export function* checkTagsStep(packages) {
|
|
|
50
57
|
/**
|
|
51
58
|
* Runs all preflight checks and emits summary.
|
|
52
59
|
*/
|
|
53
|
-
export function* runPreflightChecks(explicitRepo, packages) {
|
|
60
|
+
export function* runPreflightChecks(explicitRepo, packages, tokenEnv = 'GITHUB_TOKEN') {
|
|
54
61
|
const checkResults = [];
|
|
55
|
-
// Check
|
|
56
|
-
const
|
|
57
|
-
|
|
62
|
+
// Check HTTP client
|
|
63
|
+
const httpClientCheck = checkHttpClientStep();
|
|
64
|
+
checkResults.push(httpClientCheck);
|
|
65
|
+
// Check GitHub token
|
|
66
|
+
const tokenCheck = yield* checkGithubTokenStep(tokenEnv);
|
|
67
|
+
if (tokenCheck === null) {
|
|
58
68
|
return; // Analysis mode
|
|
59
69
|
}
|
|
60
|
-
checkResults.push(
|
|
61
|
-
// Check authentication
|
|
62
|
-
checkResults.push(yield* checkGhAuthStep());
|
|
70
|
+
checkResults.push(tokenCheck);
|
|
63
71
|
// Check repository
|
|
64
72
|
const { check: repoCheck } = yield* checkRepositoryStep(explicitRepo);
|
|
65
73
|
checkResults.push(repoCheck);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preflight-checks.js","sourceRoot":"","sources":["../../src/steps/preflight-checks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"preflight-checks.js","sourceRoot":"","sources":["../../src/steps/preflight-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
export interface UploadAssetsOptions {
|
|
2
|
+
dryRun?: boolean;
|
|
3
|
+
repository?: string;
|
|
4
|
+
tokenEnv?: string;
|
|
5
|
+
}
|
|
1
6
|
/**
|
|
2
7
|
* Uploads assets to an existing GitHub release.
|
|
3
|
-
* Yields
|
|
8
|
+
* Yields HTTP ops and returns the list of uploaded asset paths.
|
|
4
9
|
*/
|
|
5
|
-
export declare function uploadAssets(tagName: string, assets: string[],
|
|
10
|
+
export declare function uploadAssets(tagName: string, assets: string[], options?: UploadAssetsOptions | boolean | undefined): Generator<unknown, string[], unknown>;
|
|
6
11
|
//# sourceMappingURL=upload-assets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-assets.d.ts","sourceRoot":"","sources":["../../src/steps/upload-assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload-assets.d.ts","sourceRoot":"","sources":["../../src/steps/upload-assets.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkHD;;;GAGG;AACH,wBAAiB,YAAY,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,mBAAmB,GAAG,OAAO,GAAG,SAAc,GACtD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAwBvC"}
|
|
@@ -1,32 +1,102 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
1
2
|
import { sh } from '@kitsi/cli';
|
|
3
|
+
import { resolveRepository } from './detect-repository.js';
|
|
4
|
+
import { buildGitHubRequest, formatGitHubApiError, parseGitHubJson, stripUploadUrlTemplate, } from './github-api.js';
|
|
5
|
+
function* fetchReleaseByTag(repository, tagName, tokenEnv) {
|
|
6
|
+
const url = `https://api.github.com/repos/${repository}/releases/tags/${tagName}`;
|
|
7
|
+
const request = buildGitHubRequest('GET', url, tokenEnv);
|
|
8
|
+
const response = (yield request);
|
|
9
|
+
if (response.body === '') {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
if (response.status < 200 || response.status >= 300) {
|
|
13
|
+
throw new Error(formatGitHubApiError(response.status, response.body));
|
|
14
|
+
}
|
|
15
|
+
return parseGitHubJson(response);
|
|
16
|
+
}
|
|
17
|
+
const normalizeOptions = (options) => {
|
|
18
|
+
const resolved = typeof options === 'boolean' ? { dryRun: options } : (options ?? {});
|
|
19
|
+
return {
|
|
20
|
+
dryRun: Boolean(resolved.dryRun),
|
|
21
|
+
repository: resolved.repository,
|
|
22
|
+
tokenEnv: resolved.tokenEnv ?? 'GITHUB_TOKEN',
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
function* resolveUploadContext(tagName, options) {
|
|
26
|
+
const repository = yield* resolveRepository(options.repository);
|
|
27
|
+
if (!repository) {
|
|
28
|
+
return null; // Analysis mode
|
|
29
|
+
}
|
|
30
|
+
const release = yield* fetchReleaseByTag(repository, tagName, options.tokenEnv);
|
|
31
|
+
if (!release) {
|
|
32
|
+
return null; // Analysis mode
|
|
33
|
+
}
|
|
34
|
+
const baseUploadUrl = release.upload_url ? stripUploadUrlTemplate(release.upload_url) : '';
|
|
35
|
+
if (!baseUploadUrl) {
|
|
36
|
+
throw new Error('GitHub API response missing upload_url.');
|
|
37
|
+
}
|
|
38
|
+
return { baseUploadUrl, tokenEnv: options.tokenEnv };
|
|
39
|
+
}
|
|
40
|
+
function* ensureAssetExists(asset) {
|
|
41
|
+
const exists = (yield sh `test -f "${asset}" && echo "yes" || echo "no"`.stdout());
|
|
42
|
+
if (exists === '') {
|
|
43
|
+
return false; // Analysis mode
|
|
44
|
+
}
|
|
45
|
+
if (exists.trim() === 'yes') {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
yield sh `echo "Warning: Asset not found: ${asset}"`.must();
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
function* uploadAsset(asset, context) {
|
|
52
|
+
const ready = yield* ensureAssetExists(asset);
|
|
53
|
+
if (!ready) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const assetName = basename(asset);
|
|
57
|
+
const encodedName = encodeURIComponent(assetName);
|
|
58
|
+
const uploadUrl = `${context.baseUploadUrl}?name=${encodedName}`;
|
|
59
|
+
const request = buildGitHubRequest('POST', uploadUrl, context.tokenEnv)
|
|
60
|
+
.header('Content-Type', 'application/octet-stream')
|
|
61
|
+
.bodyPath(asset);
|
|
62
|
+
const uploadResponse = (yield request);
|
|
63
|
+
if (uploadResponse.body === '') {
|
|
64
|
+
return false; // Analysis mode
|
|
65
|
+
}
|
|
66
|
+
if (uploadResponse.status >= 200 && uploadResponse.status < 300) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
yield sh `echo "Warning: Failed to upload asset: ${asset} (status ${uploadResponse.status})"`.must();
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
function* uploadAssetsDryRun(tagName, assets) {
|
|
73
|
+
const uploaded = [];
|
|
74
|
+
for (const asset of assets) {
|
|
75
|
+
yield sh `echo "[DRY RUN] Would upload asset: ${asset} to ${tagName}"`.must();
|
|
76
|
+
uploaded.push(asset);
|
|
77
|
+
}
|
|
78
|
+
return uploaded;
|
|
79
|
+
}
|
|
2
80
|
/**
|
|
3
81
|
* Uploads assets to an existing GitHub release.
|
|
4
|
-
* Yields
|
|
82
|
+
* Yields HTTP ops and returns the list of uploaded asset paths.
|
|
5
83
|
*/
|
|
6
|
-
export function* uploadAssets(tagName, assets,
|
|
84
|
+
export function* uploadAssets(tagName, assets, options = {}) {
|
|
7
85
|
if (assets.length === 0) {
|
|
8
86
|
return [];
|
|
9
87
|
}
|
|
88
|
+
const opts = normalizeOptions(options);
|
|
89
|
+
if (opts.dryRun) {
|
|
90
|
+
return yield* uploadAssetsDryRun(tagName, assets);
|
|
91
|
+
}
|
|
92
|
+
const context = yield* resolveUploadContext(tagName, opts);
|
|
93
|
+
if (!context) {
|
|
94
|
+
return []; // Analysis mode
|
|
95
|
+
}
|
|
10
96
|
const uploaded = [];
|
|
11
97
|
for (const asset of assets) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
uploaded.push(asset);
|
|
15
|
-
continue;
|
|
16
|
-
}
|
|
17
|
-
// Check if asset exists
|
|
18
|
-
const exists = (yield sh `test -f "${asset}" && echo "yes" || echo "no"`.stdout());
|
|
19
|
-
if (exists === '') {
|
|
20
|
-
continue; // Analysis mode
|
|
21
|
-
}
|
|
22
|
-
if (exists.trim() !== 'yes') {
|
|
23
|
-
// Asset doesn't exist, skip with warning
|
|
24
|
-
yield sh `echo "Warning: Asset not found: ${asset}"`.must();
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
// Upload the asset
|
|
28
|
-
const result = yield sh `gh release upload "${tagName}" "${asset}" --clobber`;
|
|
29
|
-
if (result.ok) {
|
|
98
|
+
const didUpload = yield* uploadAsset(asset, context);
|
|
99
|
+
if (didUpload) {
|
|
30
100
|
uploaded.push(asset);
|
|
31
101
|
}
|
|
32
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-assets.js","sourceRoot":"","sources":["../../src/steps/upload-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"upload-assets.js","sourceRoot":"","sources":["../../src/steps/upload-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,11 @@ export interface ReleaseOptions {
|
|
|
71
71
|
* Creates a linked discussion when specified.
|
|
72
72
|
*/
|
|
73
73
|
discussionCategory?: string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Environment variable name that holds the GitHub token.
|
|
76
|
+
* (default: 'GITHUB_TOKEN')
|
|
77
|
+
*/
|
|
78
|
+
tokenEnv?: string | undefined;
|
|
74
79
|
/** Skip specific lifecycle steps */
|
|
75
80
|
skip?: {
|
|
76
81
|
/** Skip preflight checks */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-options.d.ts","sourceRoot":"","sources":["../../src/types/release-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAEhB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAEtC,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,oCAAoC;IACpC,IAAI,CAAC,EACD;QACE,4BAA4B;QAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAChC,6BAA6B;QAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7B,4BAA4B;QAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAC9B,GACD,SAAS,CAAC;CACf"}
|
|
1
|
+
{"version":3,"file":"release-options.d.ts","sourceRoot":"","sources":["../../src/types/release-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAEhB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAEtC,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,oCAAoC;IACpC,IAAI,CAAC,EACD;QACE,4BAA4B;QAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAChC,6BAA6B;QAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7B,4BAA4B;QAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAC9B,GACD,SAAS,CAAC;CACf"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kitsi/pack-github-release",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Kitsi pack for publishing GitHub releases with auto-generated release notes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"clean": "rm -rf dist coverage",
|
|
23
23
|
"lint": "biome check .",
|
|
24
24
|
"lint:fix": "biome check --write .",
|
|
25
|
-
"typecheck": "bun run tsc --noEmit",
|
|
25
|
+
"typecheck": "bun run tsc --noEmit && bun run tsc --noEmit -p tsconfig.test.json",
|
|
26
|
+
"typecheck:tests": "bun run tsc --noEmit -p tsconfig.test.json",
|
|
26
27
|
"test": "vitest run",
|
|
27
28
|
"test:watch": "vitest --watch",
|
|
28
29
|
"test:coverage": "mkdir -p reports && vitest run --coverage",
|