@packtory/github-release-gate 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,7 +44,7 @@ async function evaluatePacktoryPolicy(dependencies, config, now, timeGateDecisio
44
44
  async function loadGitHubTimeGateDecision(dependencies, config) {
45
45
  const githubApi = createGitHubReleaseGateApi(dependencies.fetch, createGitHubRepositoryContext(config));
46
46
  const mainHeadSha = await githubApi.getMainBranchHeadSha();
47
- const successfulMainCiRun = await githubApi.getLatestSuccessfulMainCiRun(config.ciWorkflowFile, mainHeadSha);
47
+ const mainCiRunStatus = await githubApi.getMainCiRunStatus(config.ciWorkflowFile, mainHeadSha);
48
48
  const pullRequestActivities = await githubApi.getOpenPullRequestActivities();
49
49
  const now = dependencies.now();
50
50
  return {
@@ -53,12 +53,12 @@ async function loadGitHubTimeGateDecision(dependencies, config) {
53
53
  decision: evaluateGitHubReleaseGate({
54
54
  ciWorkflowFile: config.ciWorkflowFile,
55
55
  mainBranch: config.defaultBranch,
56
+ mainCiRunStatus,
56
57
  mainHeadSha,
57
58
  maxLatencyHours: config.maxLatencyHours,
58
59
  now,
59
60
  pullRequestActivities,
60
- quietPeriodMinutes: config.quietPeriodMinutes,
61
- successfulMainCiRun
61
+ quietPeriodMinutes: config.quietPeriodMinutes
62
62
  })
63
63
  };
64
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../../../../source/github-release-gate/cli-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-runner.js","sourceRoot":"","sources":["../../../../source/github-release-gate/cli-runner.ts"],"names":[],"mappings":"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"}
@@ -50,26 +50,37 @@ export function createGitHubReleaseGateApi(fetchImplementation, context) {
50
50
  }));
51
51
  return branch.data.commit.sha;
52
52
  },
53
- async getLatestSuccessfulMainCiRun(ciWorkflowFile, headSha) {
53
+ async getMainCiRunStatus(ciWorkflowFile, headSha) {
54
54
  const response = await requestGitHub(octokit.rest.actions.listWorkflowRuns({
55
55
  ...requestContext,
56
56
  workflow_id: ciWorkflowFile,
57
57
  branch: context.defaultBranch,
58
58
  event: 'push',
59
59
  head_sha: headSha,
60
- status: 'completed',
61
60
  per_page: 100
62
61
  }));
63
- const matchingRun = response.data.workflow_runs.find((run) => {
64
- return run.head_sha === headSha && run.conclusion === 'success' && run.event === 'push';
62
+ const matchingRuns = response.data.workflow_runs.filter((run) => {
63
+ return run.head_sha === headSha && run.event === 'push';
65
64
  });
66
- if (matchingRun === undefined) {
67
- return undefined;
65
+ const successfulRun = matchingRuns.find((run) => {
66
+ return run.conclusion === 'success';
67
+ });
68
+ if (successfulRun !== undefined) {
69
+ return {
70
+ kind: 'success',
71
+ run: {
72
+ htmlUrl: successfulRun.html_url,
73
+ updatedAt: parseTimestamp(successfulRun.updated_at)
74
+ }
75
+ };
76
+ }
77
+ const inProgressRun = matchingRuns.find((run) => {
78
+ return run.status !== 'completed';
79
+ });
80
+ if (inProgressRun !== undefined) {
81
+ return { kind: 'in_progress' };
68
82
  }
69
- return {
70
- htmlUrl: matchingRun.html_url,
71
- updatedAt: parseTimestamp(matchingRun.updated_at)
72
- };
83
+ return { kind: 'missing' };
73
84
  },
74
85
  async getOpenPullRequestActivities() {
75
86
  const openPullRequests = await requestGitHub(octokit.paginate(octokit.rest.pulls.list, {
@@ -1 +1 @@
1
- {"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../../source/github-release-gate/github-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../../source/github-release-gate/github-api.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@ function createMissingCiDecision(input) {
29
29
  `HEAD ${input.mainHeadSha}.`;
30
30
  return createDecision(false, 'ci_not_green', [], missingCiLog);
31
31
  }
32
+ function createInProgressCiDecision(input) {
33
+ const inProgressLog = `Skipping publish: a ${input.ciWorkflowFile} push run is still in progress for ${input.mainBranch} ` +
34
+ `HEAD ${input.mainHeadSha}.`;
35
+ return createDecision(false, 'ci_in_progress', [], inProgressLog);
36
+ }
32
37
  function hasElapsed(now, since, elapsedMilliseconds) {
33
38
  return now.getTime() - since.getTime() >= elapsedMilliseconds;
34
39
  }
@@ -61,17 +66,14 @@ export function selectPullRequestActivityAt(pullRequestCreatedAt, timelineEvents
61
66
  }
62
67
  return maxDate(pullRequestCreatedAt, branchActivityDates);
63
68
  }
64
- export function evaluateGitHubReleaseGate(input) {
65
- if (input.successfulMainCiRun === undefined) {
66
- return createMissingCiDecision(input);
67
- }
68
- const mainHeadCiSuccessAt = input.successfulMainCiRun.updatedAt;
69
+ function evaluateGreenCiGate(input, successfulMainCiRun) {
70
+ const mainHeadCiSuccessAt = successfulMainCiRun.updatedAt;
69
71
  const lastRelevantActivityAt = lastRelevantActivityAtFor(input, mainHeadCiSuccessAt);
70
72
  const { quietPeriodElapsed, maxLatencyElapsed } = getElapsedFlags(input, mainHeadCiSuccessAt, lastRelevantActivityAt);
71
73
  const logs = buildDecisionLogs({
72
74
  input,
73
75
  mainHeadCiSuccessAt,
74
- mainHeadCiSuccessHtmlUrl: input.successfulMainCiRun.htmlUrl,
76
+ mainHeadCiSuccessHtmlUrl: successfulMainCiRun.htmlUrl,
75
77
  lastRelevantActivityAt,
76
78
  quietPeriodElapsed,
77
79
  maxLatencyElapsed
@@ -81,4 +83,13 @@ export function evaluateGitHubReleaseGate(input) {
81
83
  }
82
84
  return createDecision(true, quietPeriodElapsed ? 'quiet_period_elapsed' : 'max_latency_elapsed', logs, 'Publishing is allowed by the release gate.');
83
85
  }
86
+ export function evaluateGitHubReleaseGate(input) {
87
+ if (input.mainCiRunStatus.kind === 'in_progress') {
88
+ return createInProgressCiDecision(input);
89
+ }
90
+ if (input.mainCiRunStatus.kind === 'missing') {
91
+ return createMissingCiDecision(input);
92
+ }
93
+ return evaluateGreenCiGate(input, input.mainCiRunStatus.run);
94
+ }
84
95
  //# sourceMappingURL=release-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"release-gate.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-gate.js","sourceRoot":"","sources":["../../../../source/github-release-gate/release-gate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { assertGitHubApiBaseUrl } from "./validate-api-base-url.js";
1
2
  const defaultDependencyOnlyMinAgeDays = 7;
2
3
  const defaultMaxLatencyHours = 24;
3
4
  const defaultQuietPeriodMinutes = 45;
@@ -25,7 +26,7 @@ export function readGitHubReleaseGateRunnerConfig(getEnvironmentVariable) {
25
26
  ciWorkflowFile: getEnvironmentVariable('CI_WORKFLOW_FILE') ?? defaultCiWorkflowFile(),
26
27
  dependencyOnlyMinAgeDays: parseInteger(getEnvironmentVariable('DEPENDENCY_ONLY_MIN_AGE_DAYS'), defaultDependencyOnlyMinAgeDays),
27
28
  defaultBranch: getEnvironmentVariable('DEFAULT_BRANCH') ?? defaultMainBranch(),
28
- githubApiBaseUrl: getEnvironmentVariable('GITHUB_API_BASE_URL') ?? defaultGitHubApiBaseUrl(),
29
+ githubApiBaseUrl: assertGitHubApiBaseUrl(getEnvironmentVariable('GITHUB_API_BASE_URL') ?? defaultGitHubApiBaseUrl()),
29
30
  githubOutputPath: getRequiredEnvironmentVariable(getEnvironmentVariable, 'GITHUB_OUTPUT'),
30
31
  maxLatencyHours: parseInteger(getEnvironmentVariable('MAX_LATENCY_HOURS'), defaultMaxLatencyHours),
31
32
  quietPeriodMinutes: parseInteger(getEnvironmentVariable('QUIET_PERIOD_MINUTES'), defaultQuietPeriodMinutes),
@@ -1 +1 @@
1
- {"version":3,"file":"runner-config.js","sourceRoot":"","sources":["../../../../source/github-release-gate/runner-config.ts"],"names":[],"mappings":"AAoBA,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,sBAAoE,EACpE,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,sBAAoE;IAEpE,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,CAAC,qBAAqB,CAAC,IAAI,uBAAuB,EAAE;QAC5F,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
+ {"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;AAsBpE,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,sBAAoE,EACpE,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,sBAAoE;IAEpE,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"}
@@ -0,0 +1,31 @@
1
+ const expectedApiHostname = 'api.github.com';
2
+ const loopbackHostnames = new Set(['127.0.0.1', '[::1]', 'localhost']);
3
+ function parseOrThrow(value) {
4
+ try {
5
+ return new URL(value);
6
+ }
7
+ catch {
8
+ throw new Error(`GITHUB_API_BASE_URL is not a valid URL: "${value}"`);
9
+ }
10
+ }
11
+ function isLoopbackHostname(hostname) {
12
+ return loopbackHostnames.has(hostname);
13
+ }
14
+ function buildMismatchMessage(actualHostname) {
15
+ return (`GITHUB_API_BASE_URL hostname must be "${expectedApiHostname}", got "${actualHostname}". ` +
16
+ 'A non-GitHub host would receive the GITHUB_TOKEN.');
17
+ }
18
+ export function assertGitHubApiBaseUrl(value) {
19
+ const parsed = parseOrThrow(value);
20
+ if (isLoopbackHostname(parsed.hostname)) {
21
+ return value;
22
+ }
23
+ if (parsed.protocol !== 'https:') {
24
+ throw new Error(`GITHUB_API_BASE_URL must use https, got: "${value}"`);
25
+ }
26
+ if (parsed.hostname !== expectedApiHostname) {
27
+ throw new Error(buildMismatchMessage(parsed.hostname));
28
+ }
29
+ return value;
30
+ }
31
+ //# sourceMappingURL=validate-api-base-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-api-base-url.js","sourceRoot":"","sources":["../../../../source/github-release-gate/validate-api-base-url.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvE,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,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,cAAsB;IAChD,OAAO,CACH,yCAAyC,mBAAmB,WAAW,cAAc,KAAK;QAC1F,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,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "@octokit/core": "7.0.6",
11
11
  "@octokit/plugin-paginate-rest": "14.0.0",
12
12
  "@octokit/plugin-rest-endpoint-methods": "17.0.0",
13
- "packtory": "0.0.30",
13
+ "packtory": "0.0.31",
14
14
  "remeda": "2.37.0"
15
15
  },
16
16
  "description": "GitHub Actions release gate that batches packtory publishes by waiting for repository activity to settle.",
@@ -42,5 +42,5 @@
42
42
  "./packages/github-release-gate/github-release-gate.entry-point.js"
43
43
  ],
44
44
  "type": "module",
45
- "version": "0.0.3"
45
+ "version": "0.0.4"
46
46
  }
package/readme.md CHANGED
@@ -77,9 +77,11 @@ This means:
77
77
  ## Decision Outputs
78
78
 
79
79
  - `should_publish=true|false`
80
- - `reason=ci_not_green|activity_not_stale|quiet_period_elapsed|max_latency_elapsed|release_unchanged|dependency_only_min_age_not_elapsed|dependency_only_min_age_elapsed|dependency_only_published_at_unknown`
80
+ - `reason=ci_not_green|ci_in_progress|activity_not_stale|quiet_period_elapsed|max_latency_elapsed|release_unchanged|dependency_only_min_age_not_elapsed|dependency_only_min_age_elapsed|dependency_only_published_at_unknown`
81
81
  - `main_head_sha=<sha>`
82
82
 
83
+ `ci_not_green` is reserved for the case where the latest push run for `main` HEAD failed or never started; transient gaps during which the run is still executing are reported as `ci_in_progress` so the next gate evaluation can pick the publish back up once CI completes.
84
+
83
85
  When run inside GitHub Actions, the tool writes these values to `$GITHUB_OUTPUT`.
84
86
 
85
87
  ## Installation
package/sbom.cdx.json CHANGED
@@ -9,16 +9,16 @@
9
9
  {
10
10
  "type": "application",
11
11
  "name": "packtory",
12
- "version": "0.0.29"
12
+ "version": "0.0.30"
13
13
  }
14
14
  ]
15
15
  },
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "@packtory/github-release-gate",
19
- "version": "0.0.3",
20
- "bom-ref": "pkg:npm/@packtory/github-release-gate@0.0.3",
21
- "purl": "pkg:npm/@packtory/github-release-gate@0.0.3"
19
+ "version": "0.0.4",
20
+ "bom-ref": "pkg:npm/@packtory/github-release-gate@0.0.4",
21
+ "purl": "pkg:npm/@packtory/github-release-gate@0.0.4"
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.30",
68
- "bom-ref": "pkg:npm/packtory@0.0.30",
67
+ "version": "0.0.31",
68
+ "bom-ref": "pkg:npm/packtory@0.0.31",
69
69
  "scope": "required",
70
70
  "licenses": [
71
71
  {
72
72
  "expression": "MIT"
73
73
  }
74
74
  ],
75
- "purl": "pkg:npm/packtory@0.0.30"
75
+ "purl": "pkg:npm/packtory@0.0.31"
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.3",
102
+ "ref": "pkg:npm/@packtory/github-release-gate@0.0.4",
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.30",
107
+ "pkg:npm/packtory@0.0.31",
108
108
  "pkg:npm/remeda@2.37.0"
109
109
  ]
110
110
  },
111
111
  {
112
- "ref": "pkg:npm/packtory@0.0.30"
112
+ "ref": "pkg:npm/packtory@0.0.31"
113
113
  },
114
114
  {
115
115
  "ref": "pkg:npm/remeda@2.37.0"