@packtory/github-release-gate 0.0.25 → 0.0.26
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/github-release-gate/cli-runner.js +5 -3
- package/github-release-gate/cli-runner.js.map +1 -1
- package/github-release-gate/github-api.js +10 -8
- package/github-release-gate/github-api.js.map +1 -1
- package/github-release-gate/release-gate.js +4 -8
- package/github-release-gate/release-gate.js.map +1 -1
- package/github-release-gate/release-policy.js.map +1 -1
- package/github-release-gate/runner-config.js.map +1 -1
- package/github-release-gate/validate-api-base-url.js +12 -5
- package/github-release-gate/validate-api-base-url.js.map +1 -1
- package/package.json +7 -4
- package/packages/github-release-gate/github-release-gate.entry-point.js +15 -13
- package/packages/github-release-gate/github-release-gate.entry-point.js.map +1 -1
- package/readme.md +11 -11
- package/sbom.cdx.json +10 -10
|
@@ -4,8 +4,9 @@ import { evaluateGitHubReleaseGate } from "./release-gate.js";
|
|
|
4
4
|
import { createGitHubRepositoryContext, readGitHubReleaseGateRunnerConfig } from "./runner-config.js";
|
|
5
5
|
function formatReleaseAnalysisFailure(error) {
|
|
6
6
|
if (error.type === 'partial') {
|
|
7
|
-
return error
|
|
8
|
-
.
|
|
7
|
+
return error
|
|
8
|
+
.failures
|
|
9
|
+
.map(function (failure) {
|
|
9
10
|
return failure.message;
|
|
10
11
|
})
|
|
11
12
|
.join('\n');
|
|
@@ -22,7 +23,8 @@ function buildGitHubOutput(mainHeadSha, decision) {
|
|
|
22
23
|
`main_head_sha=${mainHeadSha}`,
|
|
23
24
|
`should_publish=${decision.shouldPublish}`,
|
|
24
25
|
`reason=${decision.reason}`
|
|
25
|
-
]
|
|
26
|
+
]
|
|
27
|
+
.join('\n');
|
|
26
28
|
}
|
|
27
29
|
async function writeDecision(output, mainHeadSha, decision) {
|
|
28
30
|
writeLogs(output.stdoutWrite, decision.logs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../../../../source/github-release-gate/cli-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAkC,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../../../../source/github-release-gate/cli-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function parseTimestamp(timestamp) {
|
|
|
13
13
|
function readReflectedProperty(value, property) {
|
|
14
14
|
return Reflect.get(new Object(value), property);
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function createGitHubRequestError(error) {
|
|
17
17
|
const requestUrl = String(readReflectedProperty(readReflectedProperty(error, 'request'), 'url'));
|
|
18
18
|
const status = String(readReflectedProperty(error, 'status'));
|
|
19
19
|
const parsedUrl = new URL(requestUrl);
|
|
@@ -26,7 +26,7 @@ async function resolveGitHubResponse(request) {
|
|
|
26
26
|
return await request;
|
|
27
27
|
}
|
|
28
28
|
catch (error) {
|
|
29
|
-
throw
|
|
29
|
+
throw createGitHubRequestError(error);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
function createRequestHeaders(context) {
|
|
@@ -68,10 +68,10 @@ export function createGitHubReleaseGateApi(fetchImplementation, context) {
|
|
|
68
68
|
head_sha: headSha,
|
|
69
69
|
per_page: 100
|
|
70
70
|
}));
|
|
71
|
-
const matchingRuns = response.data.workflow_runs.filter((run)
|
|
71
|
+
const matchingRuns = response.data.workflow_runs.filter(function (run) {
|
|
72
72
|
return run.head_sha === headSha && run.event === 'push';
|
|
73
73
|
});
|
|
74
|
-
const successfulRun = matchingRuns.find((run)
|
|
74
|
+
const successfulRun = matchingRuns.find(function (run) {
|
|
75
75
|
return run.conclusion === 'success';
|
|
76
76
|
});
|
|
77
77
|
if (successfulRun !== undefined) {
|
|
@@ -83,7 +83,7 @@ export function createGitHubReleaseGateApi(fetchImplementation, context) {
|
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
const inProgressRun = matchingRuns.find((run)
|
|
86
|
+
const inProgressRun = matchingRuns.find(function (run) {
|
|
87
87
|
return run.status !== 'completed';
|
|
88
88
|
});
|
|
89
89
|
if (inProgressRun !== undefined) {
|
|
@@ -98,15 +98,17 @@ export function createGitHubReleaseGateApi(fetchImplementation, context) {
|
|
|
98
98
|
base: context.defaultBranch,
|
|
99
99
|
per_page: 100
|
|
100
100
|
}));
|
|
101
|
-
return Promise.all(openPullRequests.map(async (pullRequest)
|
|
101
|
+
return Promise.all(openPullRequests.map(async function (pullRequest) {
|
|
102
102
|
const timeline = await resolveGitHubResponse(octokit.paginate(octokit.rest.issues.listEventsForTimeline, {
|
|
103
103
|
...requestContext,
|
|
104
104
|
issue_number: pullRequest.number,
|
|
105
105
|
per_page: 100
|
|
106
106
|
}));
|
|
107
107
|
const timelineEvents = timeline
|
|
108
|
-
.map((event)
|
|
109
|
-
const timestamp = event.event === 'committed'
|
|
108
|
+
.map(function (event) {
|
|
109
|
+
const timestamp = event.event === 'committed'
|
|
110
|
+
? event.committer?.date
|
|
111
|
+
: event.created_at ?? undefined;
|
|
110
112
|
if (timestamp === undefined) {
|
|
111
113
|
return undefined;
|
|
112
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../../source/github-release-gate/github-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACH,2BAA2B,EAI9B,MAAM,mBAAmB,CAAC;AAwC3B,SAAS,cAAc,CAAC,SAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../../source/github-release-gate/github-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACH,2BAA2B,EAI9B,MAAM,mBAAmB,CAAC;AAwC3B,SAAS,cAAc,CAAC,SAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,QAAgB;IAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAY,CAAC;AAC/D,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACtC,OAAO,IAAI,KAAK,CAAC,8BAA8B,MAAM,SAAS,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE;QACnG,KAAK,EAAE,KAAK;KACf,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAI,OAAmB;IACvD,IAAI,CAAC;QACD,OAAO,MAAM,OAAO,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC;AAQD,SAAS,oBAAoB,CAAC,OAAgC;IAC1D,OAAO;QACH,MAAM,EAAE,6BAA6B;QACrC,aAAa,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE;QACxC,YAAY,EAAE,8BAA8B;QAC5C,sBAAsB,EAAE,YAAY;KACvC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,mBAA4C,EAC5C,OAAgC;IAEhC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAC3E,MAAM,cAAc,GAA6B;QAC7C,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACrB,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,UAAU;QAC3B,OAAO,EAAE;YACL,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,cAAc,CAAC,OAAO;SAClC;KACJ,CAAC,CAAC;IAEH,OAAO;QACH,KAAK,CAAC,oBAAoB;YACtB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACzB,GAAG,cAAc;gBACjB,MAAM,EAAE,OAAO,CAAC,aAAa;aAChC,CAAC,CACL,CAAC;YAEF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,kBAAkB,CAAC,cAAc,EAAE,OAAO;YAC5C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAClC,GAAG,cAAc;gBACjB,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,OAAO,CAAC,aAAa;gBAC7B,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,GAAG;aAChB,CAAC,CACL,CAAC;YACF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,GAAG;gBACjE,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC;YAC5D,CAAC,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG;gBACjD,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO;oBACH,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE;wBACD,OAAO,EAAE,aAAa,CAAC,QAAQ;wBAC/B,SAAS,EAAE,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC;qBACtD;iBACJ,CAAC;YACN,CAAC;YAED,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,GAAG;gBACjD,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACnC,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,4BAA4B;YAC9B,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACtC,GAAG,cAAc;gBACjB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,OAAO,CAAC,aAAa;gBAC3B,QAAQ,EAAE,GAAG;aAChB,CAAC,CACL,CAAC;YAEF,OAAO,OAAO,CAAC,GAAG,CACd,gBAAgB,CAAC,GAAG,CAAC,KAAK,WAAW,WAAW;gBAC5C,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;oBACxD,GAAG,cAAc;oBACjB,YAAY,EAAE,WAAW,CAAC,MAAM;oBAChC,QAAQ,EAAE,GAAG;iBAChB,CAAC,CACL,CAAC;gBACF,MAAM,cAAc,GAAG,QAAQ;qBAC1B,GAAG,CAAC,UAAU,KAAK;oBAChB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,WAAW;wBACzC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI;wBACvB,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;oBACpC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC1B,OAAO,SAAS,CAAC;oBACrB,CAAC;oBACD,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxE,CAAC,CAAC;qBACD,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEvB,OAAO;oBACH,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,OAAO,EAAE,WAAW,CAAC,QAAQ;oBAC7B,UAAU,EAAE,2BAA2B,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;iBAClG,CAAC;YACN,CAAC,CAAC,CACL,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -45,16 +45,12 @@ function getElapsedFlags(input, mainHeadCiSuccessAt, lastRelevantActivityAt) {
|
|
|
45
45
|
}
|
|
46
46
|
function isBranchActivityEvent(eventName) {
|
|
47
47
|
const activityEventName = String(eventName);
|
|
48
|
-
return
|
|
49
|
-
activityEventName === 'head_ref_deleted' ||
|
|
50
|
-
activityEventName === 'head_ref_force_pushed' ||
|
|
51
|
-
activityEventName === 'head_ref_restored');
|
|
48
|
+
return ['committed', 'head_ref_deleted', 'head_ref_force_pushed', 'head_ref_restored'].includes(activityEventName);
|
|
52
49
|
}
|
|
53
50
|
function lastRelevantActivityAtFor(input, mainHeadCiSuccessAt) {
|
|
54
|
-
const otherActivityDates =
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
51
|
+
const otherActivityDates = Array.from(input.pullRequestActivities, function (pullRequestActivity) {
|
|
52
|
+
return pullRequestActivity.activityAt;
|
|
53
|
+
});
|
|
58
54
|
return maxDate(mainHeadCiSuccessAt, otherActivityDates);
|
|
59
55
|
}
|
|
60
56
|
export function selectPullRequestActivityAt(pullRequestCreatedAt, timelineEvents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-gate.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"release-gate.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-policy.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"release-policy.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-config.js","sourceRoot":"","sources":["../../../../source/github-release-gate/runner-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-config.js","sourceRoot":"","sources":["../../../../source/github-release-gate/runner-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AA4BpE,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAC1C,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,SAAS,qBAAqB;IAC1B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB;IAC5B,OAAO,wBAAwB,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB,EAAE,aAAqB;IAClE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,8BAA8B,CACnC,sBAAiD,EACjD,YAAoB;IAEpB,MAAM,KAAK,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,WAAW,YAAY,uBAAuB,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,sBAAiD;IAEjD,OAAO;QACH,cAAc,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,qBAAqB,EAAE;QACrF,wBAAwB,EAAE,YAAY,CAClC,sBAAsB,CAAC,8BAA8B,CAAC,EACtD,+BAA+B,CAClC;QACD,aAAa,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,EAAE;QAC9E,gBAAgB,EAAE,sBAAsB,CACpC,sBAAsB,CAAC,qBAAqB,CAAC,IAAI,uBAAuB,EAAE,CAC7E;QACD,gBAAgB,EAAE,8BAA8B,CAAC,sBAAsB,EAAE,eAAe,CAAC;QACzF,eAAe,EAAE,YAAY,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;QAClG,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,EAAE,yBAAyB,CAAC;QAC3G,UAAU,EAAE,8BAA8B,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;QACvF,KAAK,EAAE,8BAA8B,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAChF,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACvC,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhD,IACI,eAAe,IAAI,CAAC;QACpB,eAAe,KAAK,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;QAC/C,eAAe,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,EAC3C,CAAC;QACC,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACH,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;QAC3C,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;KAC9C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,MAA+C;IAE/C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;KACtB,CAAC;AACN,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
1
|
+
function hostnameFromUrl(value) {
|
|
2
|
+
const url = new URL(value);
|
|
3
|
+
return url.hostname;
|
|
4
|
+
}
|
|
5
|
+
function expectedApiHostname() {
|
|
6
|
+
return hostnameFromUrl('https://api.github.com');
|
|
7
|
+
}
|
|
3
8
|
function parseOrThrow(value) {
|
|
4
9
|
try {
|
|
5
10
|
return new URL(value);
|
|
@@ -9,10 +14,12 @@ function parseOrThrow(value) {
|
|
|
9
14
|
}
|
|
10
15
|
}
|
|
11
16
|
function isLoopbackHostname(hostname) {
|
|
12
|
-
return
|
|
17
|
+
return (hostname === hostnameFromUrl('http://127.0.0.1') ||
|
|
18
|
+
hostname === hostnameFromUrl('http://[::1]') ||
|
|
19
|
+
hostname === hostnameFromUrl('http://localhost'));
|
|
13
20
|
}
|
|
14
21
|
function buildMismatchMessage(actualHostname) {
|
|
15
|
-
return (`GITHUB_API_BASE_URL hostname must be "${expectedApiHostname}", got "${actualHostname}". ` +
|
|
22
|
+
return (`GITHUB_API_BASE_URL hostname must be "${expectedApiHostname()}", got "${actualHostname}". ` +
|
|
16
23
|
'A non-GitHub host would receive the GITHUB_TOKEN.');
|
|
17
24
|
}
|
|
18
25
|
export function assertGitHubApiBaseUrl(value) {
|
|
@@ -23,7 +30,7 @@ export function assertGitHubApiBaseUrl(value) {
|
|
|
23
30
|
if (parsed.protocol !== 'https:') {
|
|
24
31
|
throw new Error(`GITHUB_API_BASE_URL must use https, got: "${value}"`);
|
|
25
32
|
}
|
|
26
|
-
if (parsed.hostname !== expectedApiHostname) {
|
|
33
|
+
if (parsed.hostname !== expectedApiHostname()) {
|
|
27
34
|
throw new Error(buildMismatchMessage(parsed.hostname));
|
|
28
35
|
}
|
|
29
36
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-api-base-url.js","sourceRoot":"","sources":["../../../../source/github-release-gate/validate-api-base-url.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"validate-api-base-url.js","sourceRoot":"","sources":["../../../../source/github-release-gate/validate-api-base-url.ts"],"names":[],"mappings":"AAAA,SAAS,eAAe,CAAC,KAAa;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,SAAS,mBAAmB;IACxB,OAAO,eAAe,CAAC,wBAAwB,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IAC/B,IAAI,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,GAAG,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IACxC,OAAO,CACH,QAAQ,KAAK,eAAe,CAAC,kBAAkB,CAAC;QAChD,QAAQ,KAAK,eAAe,CAAC,cAAc,CAAC;QAC5C,QAAQ,KAAK,eAAe,CAAC,kBAAkB,CAAC,CACnD,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,cAAsB;IAChD,OAAO,CACH,yCAAyC,mBAAmB,EAAE,WAAW,cAAc,KAAK;QAC5F,mDAAmD,CACtD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,mBAAmB,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
"github-release-gate": "./packages/github-release-gate/github-release-gate.entry-point.js"
|
|
5
5
|
},
|
|
6
6
|
"contributors": [
|
|
7
|
-
|
|
7
|
+
{
|
|
8
|
+
"email": "github@echooff.de",
|
|
9
|
+
"name": "Christian Rackerseder"
|
|
10
|
+
}
|
|
8
11
|
],
|
|
9
12
|
"dependencies": {
|
|
10
13
|
"@octokit/core": "7.0.6",
|
|
11
14
|
"@octokit/plugin-paginate-rest": "14.0.0",
|
|
12
15
|
"@octokit/plugin-rest-endpoint-methods": "17.0.0",
|
|
13
|
-
"packtory": "0.0.
|
|
16
|
+
"packtory": "0.0.53",
|
|
14
17
|
"remeda": "2.39.0"
|
|
15
18
|
},
|
|
16
19
|
"description": "GitHub Actions release gate that batches packtory publishes by waiting for repository activity to settle.",
|
|
@@ -36,11 +39,11 @@
|
|
|
36
39
|
"name": "@packtory/github-release-gate",
|
|
37
40
|
"repository": {
|
|
38
41
|
"type": "git",
|
|
39
|
-
"url": "git+
|
|
42
|
+
"url": "git+https://github.com/enormora/packtory.git"
|
|
40
43
|
},
|
|
41
44
|
"sideEffects": [
|
|
42
45
|
"./packages/github-release-gate/github-release-gate.entry-point.js"
|
|
43
46
|
],
|
|
44
47
|
"type": "module",
|
|
45
|
-
"version": "0.0.
|
|
48
|
+
"version": "0.0.26"
|
|
46
49
|
}
|
|
@@ -9,21 +9,19 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
};
|
|
10
10
|
import fs from 'node:fs';
|
|
11
11
|
import path from 'node:path';
|
|
12
|
-
import { hasProp, isPlainObject } from 'remeda';
|
|
13
12
|
import { createFileManager } from "packtory/file-manager/file-manager.js";
|
|
14
13
|
import { runGitHubReleaseGate } from "../../github-release-gate/cli-runner.js";
|
|
15
|
-
function getEnvironmentVariable(variableName) {
|
|
16
|
-
const value = process.env[variableName];
|
|
17
|
-
return value === undefined || value.length === 0 ? undefined : value;
|
|
18
|
-
}
|
|
19
14
|
function isFunction(value) {
|
|
20
15
|
return typeof value === 'function';
|
|
21
16
|
}
|
|
17
|
+
function isConfigModule(value) {
|
|
18
|
+
return value !== null && typeof value === 'object';
|
|
19
|
+
}
|
|
22
20
|
function unwrapConfigModule(module) {
|
|
23
|
-
if (
|
|
21
|
+
if (Object.hasOwn(module, 'config')) {
|
|
24
22
|
return module.config;
|
|
25
23
|
}
|
|
26
|
-
if (
|
|
24
|
+
if (Object.hasOwn(module, 'buildConfig')) {
|
|
27
25
|
const { buildConfig } = module;
|
|
28
26
|
if (isFunction(buildConfig)) {
|
|
29
27
|
return buildConfig();
|
|
@@ -32,33 +30,37 @@ function unwrapConfigModule(module) {
|
|
|
32
30
|
}
|
|
33
31
|
throw new Error('Config file doesn’t have a named export "config" nor "buildConfig"');
|
|
34
32
|
}
|
|
33
|
+
function getEnvironmentVariable(variableName) {
|
|
34
|
+
const value = process.env[variableName];
|
|
35
|
+
return value === undefined || value.length === 0 ? undefined : value;
|
|
36
|
+
}
|
|
35
37
|
async function loadPacktoryConfigFromCwd() {
|
|
36
38
|
const configFilePath = path.join(process.cwd(), 'packtory.config.js');
|
|
37
39
|
const module = await import(__rewriteRelativeImportExtension(configFilePath));
|
|
38
|
-
if (!
|
|
40
|
+
if (!isConfigModule(module)) {
|
|
39
41
|
throw new Error('Invalid config file');
|
|
40
42
|
}
|
|
41
43
|
return unwrapConfigModule(module);
|
|
42
44
|
}
|
|
43
45
|
function createDependencies() {
|
|
44
46
|
return {
|
|
45
|
-
|
|
47
|
+
async analyzeReleaseAgainstLatestPublished(config) {
|
|
46
48
|
const packtory = await import("packtory");
|
|
47
49
|
return packtory.analyzeReleaseAgainstLatestPublished(config);
|
|
48
50
|
},
|
|
49
|
-
fetch
|
|
51
|
+
fetch,
|
|
50
52
|
fileManager: createFileManager({ hostFileSystem: fs.promises }),
|
|
51
53
|
getEnvironmentVariable,
|
|
52
54
|
loadPacktoryConfig: loadPacktoryConfigFromCwd,
|
|
53
|
-
now
|
|
55
|
+
now() {
|
|
54
56
|
return new Date();
|
|
55
57
|
},
|
|
56
|
-
stdoutWrite
|
|
58
|
+
stdoutWrite(message) {
|
|
57
59
|
process.stdout.write(`${message}\n`);
|
|
58
60
|
}
|
|
59
61
|
};
|
|
60
62
|
}
|
|
61
|
-
process.exitCode = await (async ()
|
|
63
|
+
process.exitCode = await (async function () {
|
|
62
64
|
try {
|
|
63
65
|
await runGitHubReleaseGate(createDependencies());
|
|
64
66
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-release-gate.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/github-release-gate/github-release-gate.entry-point.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"github-release-gate.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/github-release-gate/github-release-gate.entry-point.ts"],"names":[],"mappings":"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"}
|
package/readme.md
CHANGED
|
@@ -54,17 +54,17 @@ More concretely:
|
|
|
54
54
|
3. Inspect all open PRs targeting the default branch.
|
|
55
55
|
4. For each PR, derive its latest relevant branch activity from the PR timeline.
|
|
56
56
|
5. Compute the latest relevant activity timestamp across:
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
- the successful CI completion time for `main` HEAD
|
|
58
|
+
- all open PR branch activity timestamps
|
|
59
59
|
6. Open the GitHub activity gate if either condition is true:
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
- the quiet period has elapsed since the latest relevant activity
|
|
61
|
+
- the max latency has elapsed since `main` HEAD first went green
|
|
62
62
|
7. Run Packtory release analysis against npm `latest`.
|
|
63
63
|
8. Apply the release-content policy:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
- `unchanged`: skip
|
|
65
|
+
- `substantive`: publish
|
|
66
|
+
- `first-publish`: publish
|
|
67
|
+
- `dependency-only`: publish only after `DEPENDENCY_ONLY_MIN_AGE_DAYS`
|
|
68
68
|
|
|
69
69
|
This means:
|
|
70
70
|
|
|
@@ -103,10 +103,10 @@ The package ships a `github-release-gate` executable that writes its decision to
|
|
|
103
103
|
env:
|
|
104
104
|
CI_WORKFLOW_FILE: ci.yml
|
|
105
105
|
DEFAULT_BRANCH: main
|
|
106
|
-
DEPENDENCY_ONLY_MIN_AGE_DAYS:
|
|
106
|
+
DEPENDENCY_ONLY_MIN_AGE_DAYS: "7"
|
|
107
107
|
GITHUB_TOKEN: ${{ github.token }}
|
|
108
|
-
MAX_LATENCY_HOURS:
|
|
109
|
-
QUIET_PERIOD_MINUTES:
|
|
108
|
+
MAX_LATENCY_HOURS: "24"
|
|
109
|
+
QUIET_PERIOD_MINUTES: "45"
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
## Environment Variables
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.51"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@packtory/github-release-gate",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@packtory/github-release-gate@0.0.
|
|
21
|
-
"purl": "pkg:npm/@packtory/github-release-gate@0.0.
|
|
19
|
+
"version": "0.0.26",
|
|
20
|
+
"bom-ref": "pkg:npm/@packtory/github-release-gate@0.0.26",
|
|
21
|
+
"purl": "pkg:npm/@packtory/github-release-gate@0.0.26"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
{
|
|
65
65
|
"type": "library",
|
|
66
66
|
"name": "packtory",
|
|
67
|
-
"version": "0.0.
|
|
68
|
-
"bom-ref": "pkg:npm/packtory@0.0.
|
|
67
|
+
"version": "0.0.53",
|
|
68
|
+
"bom-ref": "pkg:npm/packtory@0.0.53",
|
|
69
69
|
"scope": "required",
|
|
70
70
|
"licenses": [
|
|
71
71
|
{
|
|
72
72
|
"expression": "MIT"
|
|
73
73
|
}
|
|
74
74
|
],
|
|
75
|
-
"purl": "pkg:npm/packtory@0.0.
|
|
75
|
+
"purl": "pkg:npm/packtory@0.0.53"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"type": "library",
|
|
@@ -99,17 +99,17 @@
|
|
|
99
99
|
"ref": "pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0"
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
|
-
"ref": "pkg:npm/@packtory/github-release-gate@0.0.
|
|
102
|
+
"ref": "pkg:npm/@packtory/github-release-gate@0.0.26",
|
|
103
103
|
"dependsOn": [
|
|
104
104
|
"pkg:npm/@octokit/core@7.0.6",
|
|
105
105
|
"pkg:npm/@octokit/plugin-paginate-rest@14.0.0",
|
|
106
106
|
"pkg:npm/@octokit/plugin-rest-endpoint-methods@17.0.0",
|
|
107
|
-
"pkg:npm/packtory@0.0.
|
|
107
|
+
"pkg:npm/packtory@0.0.53",
|
|
108
108
|
"pkg:npm/remeda@2.39.0"
|
|
109
109
|
]
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
|
-
"ref": "pkg:npm/packtory@0.0.
|
|
112
|
+
"ref": "pkg:npm/packtory@0.0.53"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"ref": "pkg:npm/remeda@2.39.0"
|