@xpertss/projen-types 0.0.1 → 0.0.2
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/.jsii +1083 -92
- package/API.md +7459 -4313
- package/README.md +103 -1
- package/lib/actions/action-build-workflow.d.ts +17 -0
- package/lib/actions/action-build-workflow.js +52 -0
- package/lib/actions/action-dogfood-workflow.d.ts +47 -0
- package/lib/actions/action-dogfood-workflow.js +84 -0
- package/lib/actions/action-sonar-workflow.d.ts +25 -0
- package/lib/actions/action-sonar-workflow.js +64 -0
- package/lib/actions/github-action-project.d.ts +60 -0
- package/lib/actions/github-action-project.js +155 -0
- package/lib/cdk/app-runtime-scaffold.js +1 -1
- package/lib/cdk/cdk-app-project.js +2 -4
- package/lib/cdk/cdk-infra-project.js +1 -1
- package/lib/cdk/cdk-typescript-base.js +16 -3
- package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
- package/lib/cdk/components/edge-networking-constructs.js +1 -1
- package/lib/cdk/database-component.js +1 -1
- package/lib/cdk/options.d.ts +0 -2
- package/lib/cdk/options.js +1 -1
- package/lib/common/actions-allowlist-guard.d.ts +37 -0
- package/lib/common/actions-allowlist-guard.js +70 -0
- package/lib/common/internal-actions.d.ts +10 -0
- package/lib/common/internal-actions.js +33 -0
- package/lib/common/manual-deploy-workflow.d.ts +0 -2
- package/lib/common/manual-deploy-workflow.js +1 -12
- package/lib/common/projen-drift-check-workflow.d.ts +36 -0
- package/lib/common/projen-drift-check-workflow.js +73 -0
- package/lib/common/upgrade-workflow.js +6 -2
- package/lib/common/workflow-change-notice-workflow.d.ts +33 -0
- package/lib/common/workflow-change-notice-workflow.js +58 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +9 -1
- package/lib/java/components/cdk-deploy-hook.js +1 -1
- package/lib/java/components/code-index-workflow.js +1 -1
- package/lib/java/components/docker-publish.js +1 -1
- package/lib/java/components/flyway-migration.js +1 -1
- package/lib/java/components/github-packages-publish.js +1 -1
- package/lib/java/components/maven-central-publish.js +1 -1
- package/lib/java/java-app-project.js +1 -1
- package/lib/java/java-library-project.js +1 -1
- package/lib/java/java-maven-base.js +13 -4
- package/lib/java/java-service-project.js +1 -1
- package/package.json +1 -1
- package/release-publishing.md +57 -66
- package/lib/common/drift-check.d.ts +0 -8
- package/lib/common/drift-check.js +0 -18
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, github } from 'projen';
|
|
2
|
+
/**
|
|
3
|
+
* PR-triggered check that rejects direct edits to projen-managed files.
|
|
4
|
+
*
|
|
5
|
+
* Re-runs the project's synth command on the PR head and fails if the
|
|
6
|
+
* regenerated output no longer matches what's committed - i.e. someone
|
|
7
|
+
* hand-edited a generated file (package.json / pom.xml /
|
|
8
|
+
* .github/workflows/*.yml / ...) instead of going through `.projenrc.ts`.
|
|
9
|
+
*
|
|
10
|
+
* Runs on `pull_request` so it genuinely executes the PR's own code (the
|
|
11
|
+
* only way to detect drift) - and therefore, by necessity, a PR author can
|
|
12
|
+
* disable it within their own PR. That residual exposure is bounded by
|
|
13
|
+
* `WorkflowChangeNoticeWorkflow` (Check 2), which is tamper-proof and flags
|
|
14
|
+
* any touch to `.github/workflows/**`. See the F003 spec's Security section.
|
|
15
|
+
*/
|
|
16
|
+
export interface ProjenDriftCheckWorkflowOptions {
|
|
17
|
+
/**
|
|
18
|
+
* The command that regenerates the project from `.projenrc.ts`.
|
|
19
|
+
* @default "npx projen"
|
|
20
|
+
*/
|
|
21
|
+
readonly projenCommand?: string;
|
|
22
|
+
/**
|
|
23
|
+
* GitHub secret holding a token with permission to comment on PRs, used
|
|
24
|
+
* for the best-effort drift report comment. The check still fails (and
|
|
25
|
+
* emits `::error::` annotations) without it, so fork PRs - which get no
|
|
26
|
+
* secrets - are only missing the extra comment.
|
|
27
|
+
* @default "PROJEN_GITHUB_TOKEN"
|
|
28
|
+
*/
|
|
29
|
+
readonly gheTokenSecret?: string;
|
|
30
|
+
/** @default "projen-drift-check" */
|
|
31
|
+
readonly workflowName?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare class ProjenDriftCheckWorkflow extends Component {
|
|
34
|
+
readonly workflow: github.GithubWorkflow;
|
|
35
|
+
constructor(scope: github.GitHubProject, options?: ProjenDriftCheckWorkflowOptions);
|
|
36
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjenDriftCheckWorkflow = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const projen_1 = require("projen");
|
|
6
|
+
class ProjenDriftCheckWorkflow extends projen_1.Component {
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.2" };
|
|
8
|
+
workflow;
|
|
9
|
+
constructor(scope, options = {}) {
|
|
10
|
+
super(scope, 'ProjenDriftCheckWorkflow');
|
|
11
|
+
const gh = scope.github;
|
|
12
|
+
if (!gh) {
|
|
13
|
+
throw new Error('ProjenDriftCheckWorkflow requires GitHub integration to be enabled');
|
|
14
|
+
}
|
|
15
|
+
const projenCommand = options.projenCommand ?? 'npx projen';
|
|
16
|
+
const gheTokenSecret = options.gheTokenSecret ?? 'PROJEN_GITHUB_TOKEN';
|
|
17
|
+
this.workflow = new projen_1.github.GithubWorkflow(gh, options.workflowName ?? 'projen-drift-check');
|
|
18
|
+
this.workflow.on({ pullRequest: {} });
|
|
19
|
+
this.workflow.addJob('check', {
|
|
20
|
+
runsOn: ['ubuntu-latest'],
|
|
21
|
+
permissions: { contents: projen_1.github.workflows.JobPermission.READ },
|
|
22
|
+
env: { GH_TOKEN: `\${{ secrets.${gheTokenSecret} }}` },
|
|
23
|
+
steps: [
|
|
24
|
+
{
|
|
25
|
+
name: 'Checkout',
|
|
26
|
+
uses: 'actions/checkout@v4',
|
|
27
|
+
with: {
|
|
28
|
+
ref: '${{ github.event.pull_request.head.ref }}',
|
|
29
|
+
repository: '${{ github.event.pull_request.head.repo.full_name }}',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Setup Node',
|
|
34
|
+
uses: 'actions/setup-node@v4',
|
|
35
|
+
with: { 'node-version': 'lts/*' },
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Install dependencies',
|
|
39
|
+
run: 'npm ci',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'Check for projen drift',
|
|
43
|
+
run: `set -euo pipefail
|
|
44
|
+
${projenCommand}
|
|
45
|
+
drifted="$(git diff --name-only)"
|
|
46
|
+
if [ -n "$drifted" ]; then
|
|
47
|
+
while IFS= read -r f; do
|
|
48
|
+
echo "::error file=$f::projen-managed file was edited directly; make the change in .projenrc.ts and re-run npx projen"
|
|
49
|
+
done <<< "$drifted"
|
|
50
|
+
if [ -n "$GH_TOKEN" ] && [ -n "$GITHUB_EVENT_PATH" ]; then
|
|
51
|
+
pr_number="$(jq -r ".pull_request.number // empty" "$GITHUB_EVENT_PATH" 2>/dev/null || true)"
|
|
52
|
+
if [ -n "$pr_number" ]; then
|
|
53
|
+
{
|
|
54
|
+
echo "❌ projen drift detected"
|
|
55
|
+
echo ""
|
|
56
|
+
echo "These files are managed by projen and were edited directly. Direct edits are silently overwritten by the next npx projen run, so they cannot be merged as-is:"
|
|
57
|
+
echo ""
|
|
58
|
+
while IFS= read -r f; do echo " - $f"; done <<< "$drifted"
|
|
59
|
+
echo ""
|
|
60
|
+
echo "To fix: revert the direct edits above, make the equivalent change in .projenrc.ts, then run npx projen and commit the regenerated output."
|
|
61
|
+
} | gh pr comment "$pr_number" --body-file - || echo "::warning::could not post PR comment (fork PR or missing token)"
|
|
62
|
+
fi
|
|
63
|
+
fi
|
|
64
|
+
exit 1
|
|
65
|
+
fi
|
|
66
|
+
`,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.ProjenDriftCheckWorkflow = ProjenDriftCheckWorkflow;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUEyQztBQW9DM0MsTUFBYSx3QkFBeUIsU0FBUSxrQkFBUzs7SUFDckMsUUFBUSxDQUF3QjtJQUVoRCxZQUNFLEtBQTJCLEVBQzNCLFVBQTJDLEVBQUU7UUFFN0MsS0FBSyxDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYixvRUFBb0UsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFlBQVksQ0FBQztRQUM1RCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLHFCQUFxQixDQUFDO1FBRXZFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsY0FBYyxDQUN2QyxFQUFFLEVBQ0YsT0FBTyxDQUFDLFlBQVksSUFBSSxvQkFBb0IsQ0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUN6QixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzlELEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsY0FBYyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osR0FBRyxFQUFFLDJDQUEyQzt3QkFDaEQsVUFBVSxFQUFFLHNEQUFzRDtxQkFDbkU7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUU7aUJBQ2xDO2dCQUNEO29CQUNFLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLEdBQUcsRUFBRSxRQUFRO2lCQUNkO2dCQUNEO29CQUNFLElBQUksRUFBRSx3QkFBd0I7b0JBQzlCLEdBQUcsRUFBRTtFQUNiLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQmQ7aUJBQ1E7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBM0VILDREQTRFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcblxuLyoqXG4gKiBQUi10cmlnZ2VyZWQgY2hlY2sgdGhhdCByZWplY3RzIGRpcmVjdCBlZGl0cyB0byBwcm9qZW4tbWFuYWdlZCBmaWxlcy5cbiAqXG4gKiBSZS1ydW5zIHRoZSBwcm9qZWN0J3Mgc3ludGggY29tbWFuZCBvbiB0aGUgUFIgaGVhZCBhbmQgZmFpbHMgaWYgdGhlXG4gKiByZWdlbmVyYXRlZCBvdXRwdXQgbm8gbG9uZ2VyIG1hdGNoZXMgd2hhdCdzIGNvbW1pdHRlZCAtIGkuZS4gc29tZW9uZVxuICogaGFuZC1lZGl0ZWQgYSBnZW5lcmF0ZWQgZmlsZSAocGFja2FnZS5qc29uIC8gcG9tLnhtbCAvXG4gKiAuZ2l0aHViL3dvcmtmbG93cy8qLnltbCAvIC4uLikgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIGAucHJvamVucmMudHNgLlxuICpcbiAqIFJ1bnMgb24gYHB1bGxfcmVxdWVzdGAgc28gaXQgZ2VudWluZWx5IGV4ZWN1dGVzIHRoZSBQUidzIG93biBjb2RlICh0aGVcbiAqIG9ubHkgd2F5IHRvIGRldGVjdCBkcmlmdCkgLSBhbmQgdGhlcmVmb3JlLCBieSBuZWNlc3NpdHksIGEgUFIgYXV0aG9yIGNhblxuICogZGlzYWJsZSBpdCB3aXRoaW4gdGhlaXIgb3duIFBSLiBUaGF0IHJlc2lkdWFsIGV4cG9zdXJlIGlzIGJvdW5kZWQgYnlcbiAqIGBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93YCAoQ2hlY2sgMiksIHdoaWNoIGlzIHRhbXBlci1wcm9vZiBhbmQgZmxhZ3NcbiAqIGFueSB0b3VjaCB0byBgLmdpdGh1Yi93b3JrZmxvd3MvKipgLiBTZWUgdGhlIEYwMDMgc3BlYydzIFNlY3VyaXR5IHNlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB0aGF0IHJlZ2VuZXJhdGVzIHRoZSBwcm9qZWN0IGZyb20gYC5wcm9qZW5yYy50c2AuXG4gICAqIEBkZWZhdWx0IFwibnB4IHByb2plblwiXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5Db21tYW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgc2VjcmV0IGhvbGRpbmcgYSB0b2tlbiB3aXRoIHBlcm1pc3Npb24gdG8gY29tbWVudCBvbiBQUnMsIHVzZWRcbiAgICogZm9yIHRoZSBiZXN0LWVmZm9ydCBkcmlmdCByZXBvcnQgY29tbWVudC4gVGhlIGNoZWNrIHN0aWxsIGZhaWxzIChhbmRcbiAgICogZW1pdHMgYDo6ZXJyb3I6OmAgYW5ub3RhdGlvbnMpIHdpdGhvdXQgaXQsIHNvIGZvcmsgUFJzIC0gd2hpY2ggZ2V0IG5vXG4gICAqIHNlY3JldHMgLSBhcmUgb25seSBtaXNzaW5nIHRoZSBleHRyYSBjb21tZW50LlxuICAgKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2hlVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwicHJvamVuLWRyaWZ0LWNoZWNrXCIgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93OiBnaXRodWIuR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGdpdGh1Yi5HaXRIdWJQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvd09wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsICdQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cnKTtcblxuICAgIGNvbnN0IGdoID0gc2NvcGUuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1Byb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2plbkNvbW1hbmQgPSBvcHRpb25zLnByb2plbkNvbW1hbmQgPz8gJ25weCBwcm9qZW4nO1xuICAgIGNvbnN0IGdoZVRva2VuU2VjcmV0ID0gb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyAnUFJPSkVOX0dJVEhVQl9UT0tFTic7XG5cbiAgICB0aGlzLndvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyhcbiAgICAgIGdoLFxuICAgICAgb3B0aW9ucy53b3JrZmxvd05hbWUgPz8gJ3Byb2plbi1kcmlmdC1jaGVjaycsXG4gICAgKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHsgcHVsbFJlcXVlc3Q6IHt9IH0pO1xuICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKCdjaGVjaycsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIGVudjogeyBHSF9UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtnaGVUb2tlblNlY3JldH0gfX1gIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZWYgfX0nLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVwby5mdWxsX25hbWUgfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZScsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgICAgd2l0aDogeyAnbm9kZS12ZXJzaW9uJzogJ2x0cy8qJyB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICBydW46ICducG0gY2knLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrIGZvciBwcm9qZW4gZHJpZnQnLFxuICAgICAgICAgIHJ1bjogYHNldCAtZXVvIHBpcGVmYWlsXG4ke3Byb2plbkNvbW1hbmR9XG5kcmlmdGVkPVwiJChnaXQgZGlmZiAtLW5hbWUtb25seSlcIlxuaWYgWyAtbiBcIiRkcmlmdGVkXCIgXTsgdGhlblxuICB3aGlsZSBJRlM9IHJlYWQgLXIgZjsgZG9cbiAgICBlY2hvIFwiOjplcnJvciBmaWxlPSRmOjpwcm9qZW4tbWFuYWdlZCBmaWxlIHdhcyBlZGl0ZWQgZGlyZWN0bHk7IG1ha2UgdGhlIGNoYW5nZSBpbiAucHJvamVucmMudHMgYW5kIHJlLXJ1biBucHggcHJvamVuXCJcbiAgZG9uZSA8PDwgXCIkZHJpZnRlZFwiXG4gIGlmIFsgLW4gXCIkR0hfVE9LRU5cIiBdICYmIFsgLW4gXCIkR0lUSFVCX0VWRU5UX1BBVEhcIiBdOyB0aGVuXG4gICAgcHJfbnVtYmVyPVwiJChqcSAtciBcIi5wdWxsX3JlcXVlc3QubnVtYmVyIC8vIGVtcHR5XCIgXCIkR0lUSFVCX0VWRU5UX1BBVEhcIiAyPi9kZXYvbnVsbCB8fCB0cnVlKVwiXG4gICAgaWYgWyAtbiBcIiRwcl9udW1iZXJcIiBdOyB0aGVuXG4gICAgICB7XG4gICAgICAgIGVjaG8gXCLinYwgcHJvamVuIGRyaWZ0IGRldGVjdGVkXCJcbiAgICAgICAgZWNobyBcIlwiXG4gICAgICAgIGVjaG8gXCJUaGVzZSBmaWxlcyBhcmUgbWFuYWdlZCBieSBwcm9qZW4gYW5kIHdlcmUgZWRpdGVkIGRpcmVjdGx5LiBEaXJlY3QgZWRpdHMgYXJlIHNpbGVudGx5IG92ZXJ3cml0dGVuIGJ5IHRoZSBuZXh0IG5weCBwcm9qZW4gcnVuLCBzbyB0aGV5IGNhbm5vdCBiZSBtZXJnZWQgYXMtaXM6XCJcbiAgICAgICAgZWNobyBcIlwiXG4gICAgICAgIHdoaWxlIElGUz0gcmVhZCAtciBmOyBkbyBlY2hvIFwiICAtICRmXCI7IGRvbmUgPDw8IFwiJGRyaWZ0ZWRcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgZWNobyBcIlRvIGZpeDogcmV2ZXJ0IHRoZSBkaXJlY3QgZWRpdHMgYWJvdmUsIG1ha2UgdGhlIGVxdWl2YWxlbnQgY2hhbmdlIGluIC5wcm9qZW5yYy50cywgdGhlbiBydW4gbnB4IHByb2plbiBhbmQgY29tbWl0IHRoZSByZWdlbmVyYXRlZCBvdXRwdXQuXCJcbiAgICAgIH0gfCBnaCBwciBjb21tZW50IFwiJHByX251bWJlclwiIC0tYm9keS1maWxlIC0gfHwgZWNobyBcIjo6d2FybmluZzo6Y291bGQgbm90IHBvc3QgUFIgY29tbWVudCAoZm9yayBQUiBvciBtaXNzaW5nIHRva2VuKVwiXG4gICAgZmlcbiAgZmlcbiAgZXhpdCAxXG5maVxuYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -19,7 +19,10 @@ class UpgradeWorkflow extends projen_1.Component {
|
|
|
19
19
|
schedule: [{ cron: options.schedule ?? constants_1.NIGHTLY_UPGRADE_SCHEDULE }],
|
|
20
20
|
workflowDispatch: {},
|
|
21
21
|
},
|
|
22
|
-
permissions: {
|
|
22
|
+
permissions: {
|
|
23
|
+
contents: projen_1.github.workflows.JobPermission.WRITE,
|
|
24
|
+
pullRequests: projen_1.github.workflows.JobPermission.WRITE,
|
|
25
|
+
},
|
|
23
26
|
postBuildSteps: [
|
|
24
27
|
{
|
|
25
28
|
name: 'Create Pull Request',
|
|
@@ -29,6 +32,7 @@ class UpgradeWorkflow extends projen_1.Component {
|
|
|
29
32
|
'branch': 'auto/upgrade-dependencies',
|
|
30
33
|
'title': 'chore: upgrade dependencies',
|
|
31
34
|
'labels': 'auto-approve,auto-merge',
|
|
35
|
+
'token': `\${{ secrets.${constants_1.DEFAULT_GHE_TOKEN_SECRET} }}`,
|
|
32
36
|
},
|
|
33
37
|
},
|
|
34
38
|
],
|
|
@@ -36,4 +40,4 @@ class UpgradeWorkflow extends projen_1.Component {
|
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
42
|
exports.UpgradeWorkflow = UpgradeWorkflow;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vdXBncmFkZS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBaUQ7QUFDakQsMkNBR3FCO0FBa0JyQixNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUIsUUFBUSxDQUFzQjtJQUU5QyxZQUFZLEtBQTJCLEVBQUUsT0FBK0I7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDMUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksU0FBUztZQUN2QyxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsUUFBUSxFQUFFO2dCQUNSLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksb0NBQXdCLEVBQUUsQ0FBQztnQkFDbEUsZ0JBQWdCLEVBQUUsRUFBRTthQUNyQjtZQUNELFdBQVcsRUFBRTtnQkFDWCxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSztnQkFDOUMsWUFBWSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUs7YUFDbkQ7WUFDRCxjQUFjLEVBQUU7Z0JBQ2Q7b0JBQ0UsSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLG9DQUFvQztvQkFDMUMsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLDZCQUE2Qjt3QkFDL0MsUUFBUSxFQUFFLDJCQUEyQjt3QkFDckMsT0FBTyxFQUFFLDZCQUE2Qjt3QkFDdEMsUUFBUSxFQUFFLHlCQUF5Qjt3QkFDbkMsT0FBTyxFQUFFLGdCQUFnQixvQ0FBd0IsS0FBSztxQkFDdkQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXhDRCwwQ0F3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRhc2ssIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQge1xuICBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gIE5JR0hUTFlfVVBHUkFERV9TQ0hFRFVMRSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIE5pZ2h0bHkgY3JvbiB3b3JrZmxvdyB0aGF0IG9wZW5zIGEgUFIgd2l0aCBkZXBlbmRlbmN5IHVwZ3JhZGVzLiBVc2VkIGJ5XG4gKiBub24tTm9kZSBwcm9qZWN0IHR5cGVzIChKYXZhKTsgVHlwZVNjcmlwdC9DREsgcHJvamVjdCB0eXBlcyBpbnN0ZWFkIGdldFxuICogdGhpcyBmb3IgZnJlZSBmcm9tIHByb2plbidzIGJ1aWx0LWluIGBkZXBzVXBncmFkZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBncmFkZVdvcmtmbG93T3B0aW9ucyB7XG4gIC8qKiBUaGUgdGFzayB0aGF0IHBlcmZvcm1zIHRoZSB1cGdyYWRlIChlLmcuIGBtdm4gdmVyc2lvbnM6dXNlLWxhdGVzdC1yZWxlYXNlc2ApLiAqL1xuICByZWFkb25seSB0YXNrOiBUYXNrO1xuXG4gIC8qKiBAZGVmYXVsdCBcInVwZ3JhZGVcIiAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IE5JR0hUTFlfVVBHUkFERV9TQ0hFRFVMRSAoMDM6MDAgVVRDKSAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFVwZ3JhZGVXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvdzogZ2l0aHViLlRhc2tXb3JrZmxvdztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogZ2l0aHViLkdpdEh1YlByb2plY3QsIG9wdGlvbnM6IFVwZ3JhZGVXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgJ1VwZ3JhZGVXb3JrZmxvdycpO1xuXG4gICAgY29uc3QgZ2ggPSBzY29wZS5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVXBncmFkZVdvcmtmbG93IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiBvcHRpb25zLndvcmtmbG93TmFtZSA/PyAndXBncmFkZScsXG4gICAgICBqb2JJZDogJ3VwZ3JhZGUnLFxuICAgICAgdGFzazogb3B0aW9ucy50YXNrLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgc2NoZWR1bGU6IFt7IGNyb246IG9wdGlvbnMuc2NoZWR1bGUgPz8gTklHSFRMWV9VUEdSQURFX1NDSEVEVUxFIH1dLFxuICAgICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICAgIH0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICBwdWxsUmVxdWVzdHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBwb3N0QnVpbGRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NyZWF0ZSBQdWxsIFJlcXVlc3QnLFxuICAgICAgICAgIHVzZXM6ICdwZXRlci1ldmFucy9jcmVhdGUtcHVsbC1yZXF1ZXN0QHY3JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnY29tbWl0LW1lc3NhZ2UnOiAnY2hvcmU6IHVwZ3JhZGUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICdicmFuY2gnOiAnYXV0by91cGdyYWRlLWRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAndGl0bGUnOiAnY2hvcmU6IHVwZ3JhZGUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICdsYWJlbHMnOiAnYXV0by1hcHByb3ZlLGF1dG8tbWVyZ2UnLFxuICAgICAgICAgICAgJ3Rva2VuJzogYFxcJHt7IHNlY3JldHMuJHtERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVR9IH19YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, github } from 'projen';
|
|
2
|
+
/**
|
|
3
|
+
* PR-triggered, tamper-proof notice that a PR touches GitHub Actions
|
|
4
|
+
* workflow or action files.
|
|
5
|
+
*
|
|
6
|
+
* Runs on `pull_request_target` (NOT `pull_request`) so it always executes
|
|
7
|
+
* the copy of this workflow committed on the base branch - a PR cannot edit
|
|
8
|
+
* this file to disable or weaken the notice. It checks out and executes
|
|
9
|
+
* nothing from the PR; it only lists the changed filenames via the GitHub
|
|
10
|
+
* API and posts a non-blocking NOTE. Because `pull_request_target` runs with
|
|
11
|
+
* the base repo's normal token even for fork-originated PRs, the comment
|
|
12
|
+
* posts reliably with no degraded fallback.
|
|
13
|
+
*
|
|
14
|
+
* This check NEVER fails the build - it is purely informational (reviewer
|
|
15
|
+
* attention). It is the tamper-proof backstop that bounds Check 1's
|
|
16
|
+
* (`ProjenDriftCheckWorkflow`) residual exposure. See the F003 spec's
|
|
17
|
+
* Security section.
|
|
18
|
+
*/
|
|
19
|
+
export interface WorkflowChangeNoticeWorkflowOptions {
|
|
20
|
+
/**
|
|
21
|
+
* Glob patterns (bash `[[ string == pattern ]]` semantics, where `*` also
|
|
22
|
+
* matches `/`) that trigger the notice when a changed PR file matches any
|
|
23
|
+
* of them.
|
|
24
|
+
* @default [".github/workflows/**", ".github/actions/**"]
|
|
25
|
+
*/
|
|
26
|
+
readonly watchPaths?: string[];
|
|
27
|
+
/** @default "workflow-change-notice" */
|
|
28
|
+
readonly workflowName?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare class WorkflowChangeNoticeWorkflow extends Component {
|
|
31
|
+
readonly workflow: github.GithubWorkflow;
|
|
32
|
+
constructor(scope: github.GitHubProject, options?: WorkflowChangeNoticeWorkflowOptions);
|
|
33
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowChangeNoticeWorkflow = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const projen_1 = require("projen");
|
|
6
|
+
class WorkflowChangeNoticeWorkflow extends projen_1.Component {
|
|
7
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.2" };
|
|
8
|
+
workflow;
|
|
9
|
+
constructor(scope, options = {}) {
|
|
10
|
+
super(scope, 'WorkflowChangeNoticeWorkflow');
|
|
11
|
+
const gh = scope.github;
|
|
12
|
+
if (!gh) {
|
|
13
|
+
throw new Error('WorkflowChangeNoticeWorkflow requires GitHub integration to be enabled');
|
|
14
|
+
}
|
|
15
|
+
const watchPaths = options.watchPaths ?? [
|
|
16
|
+
'.github/workflows/**',
|
|
17
|
+
'.github/actions/**',
|
|
18
|
+
];
|
|
19
|
+
this.workflow = new projen_1.github.GithubWorkflow(gh, options.workflowName ?? 'workflow-change-notice');
|
|
20
|
+
this.workflow.on({ pullRequestTarget: {} });
|
|
21
|
+
this.workflow.addJob('check', {
|
|
22
|
+
runsOn: ['ubuntu-latest'],
|
|
23
|
+
permissions: { pullRequests: projen_1.github.workflows.JobPermission.WRITE },
|
|
24
|
+
env: {
|
|
25
|
+
GH_TOKEN: '${{ github.token }}',
|
|
26
|
+
WATCH_PATHS: watchPaths.join(' '),
|
|
27
|
+
},
|
|
28
|
+
steps: [
|
|
29
|
+
{
|
|
30
|
+
name: 'Check for workflow/action changes',
|
|
31
|
+
run: `set -uo pipefail
|
|
32
|
+
changed="$(gh api --paginate "repos/\${GITHUB_REPOSITORY}/pulls/\${{ github.event.number }}/files" --jq '.[].filename')"
|
|
33
|
+
if [ -z "$changed" ]; then exit 0; fi
|
|
34
|
+
matches=""
|
|
35
|
+
while IFS= read -r path; do
|
|
36
|
+
for p in $WATCH_PATHS; do
|
|
37
|
+
if [[ "$path" == $p ]]; then
|
|
38
|
+
matches="$matches$path
|
|
39
|
+
"
|
|
40
|
+
break
|
|
41
|
+
fi
|
|
42
|
+
done
|
|
43
|
+
done <<< "$changed"
|
|
44
|
+
if [ -n "$matches" ]; then
|
|
45
|
+
{
|
|
46
|
+
echo "⚠️ NOTE for reviewers: this PR modifies GitHub Actions workflow or action files. Please review these changes carefully - they can alter or bypass standard build, test, and deployment checks:"
|
|
47
|
+
echo ""
|
|
48
|
+
printf "%s" "$matches" | sed "s/^/ - /"
|
|
49
|
+
} | gh pr comment "\${{ github.event.number }}" --body-file -
|
|
50
|
+
fi
|
|
51
|
+
`,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.WorkflowChangeNoticeWorkflow = WorkflowChangeNoticeWorkflow;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQTJDO0FBZ0MzQyxNQUFhLDRCQUE2QixTQUFRLGtCQUFTOztJQUN6QyxRQUFRLENBQXdCO0lBRWhELFlBQ0UsS0FBMkIsRUFDM0IsVUFBK0MsRUFBRTtRQUVqRCxLQUFLLENBQUMsS0FBSyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFFN0MsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUNiLHdFQUF3RSxDQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUk7WUFDdkMsc0JBQXNCO1lBQ3RCLG9CQUFvQjtTQUNyQixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxjQUFjLENBQ3ZDLEVBQUUsRUFDRixPQUFPLENBQUMsWUFBWSxJQUFJLHdCQUF3QixDQUNqRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUNuRSxHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2xDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxtQ0FBbUM7b0JBQ3pDLEdBQUcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FvQmQ7aUJBQ1E7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNURILG9FQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcblxuLyoqXG4gKiBQUi10cmlnZ2VyZWQsIHRhbXBlci1wcm9vZiBub3RpY2UgdGhhdCBhIFBSIHRvdWNoZXMgR2l0SHViIEFjdGlvbnNcbiAqIHdvcmtmbG93IG9yIGFjdGlvbiBmaWxlcy5cbiAqXG4gKiBSdW5zIG9uIGBwdWxsX3JlcXVlc3RfdGFyZ2V0YCAoTk9UIGBwdWxsX3JlcXVlc3RgKSBzbyBpdCBhbHdheXMgZXhlY3V0ZXNcbiAqIHRoZSBjb3B5IG9mIHRoaXMgd29ya2Zsb3cgY29tbWl0dGVkIG9uIHRoZSBiYXNlIGJyYW5jaCAtIGEgUFIgY2Fubm90IGVkaXRcbiAqIHRoaXMgZmlsZSB0byBkaXNhYmxlIG9yIHdlYWtlbiB0aGUgbm90aWNlLiBJdCBjaGVja3Mgb3V0IGFuZCBleGVjdXRlc1xuICogbm90aGluZyBmcm9tIHRoZSBQUjsgaXQgb25seSBsaXN0cyB0aGUgY2hhbmdlZCBmaWxlbmFtZXMgdmlhIHRoZSBHaXRIdWJcbiAqIEFQSSBhbmQgcG9zdHMgYSBub24tYmxvY2tpbmcgTk9URS4gQmVjYXVzZSBgcHVsbF9yZXF1ZXN0X3RhcmdldGAgcnVucyB3aXRoXG4gKiB0aGUgYmFzZSByZXBvJ3Mgbm9ybWFsIHRva2VuIGV2ZW4gZm9yIGZvcmstb3JpZ2luYXRlZCBQUnMsIHRoZSBjb21tZW50XG4gKiBwb3N0cyByZWxpYWJseSB3aXRoIG5vIGRlZ3JhZGVkIGZhbGxiYWNrLlxuICpcbiAqIFRoaXMgY2hlY2sgTkVWRVIgZmFpbHMgdGhlIGJ1aWxkIC0gaXQgaXMgcHVyZWx5IGluZm9ybWF0aW9uYWwgKHJldmlld2VyXG4gKiBhdHRlbnRpb24pLiBJdCBpcyB0aGUgdGFtcGVyLXByb29mIGJhY2tzdG9wIHRoYXQgYm91bmRzIENoZWNrIDEnc1xuICogKGBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3dgKSByZXNpZHVhbCBleHBvc3VyZS4gU2VlIHRoZSBGMDAzIHNwZWMnc1xuICogU2VjdXJpdHkgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHbG9iIHBhdHRlcm5zIChiYXNoIGBbWyBzdHJpbmcgPT0gcGF0dGVybiBdXWAgc2VtYW50aWNzLCB3aGVyZSBgKmAgYWxzb1xuICAgKiBtYXRjaGVzIGAvYCkgdGhhdCB0cmlnZ2VyIHRoZSBub3RpY2Ugd2hlbiBhIGNoYW5nZWQgUFIgZmlsZSBtYXRjaGVzIGFueVxuICAgKiBvZiB0aGVtLlxuICAgKiBAZGVmYXVsdCBbXCIuZ2l0aHViL3dvcmtmbG93cy8qKlwiLCBcIi5naXRodWIvYWN0aW9ucy8qKlwiXVxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hQYXRocz86IHN0cmluZ1tdO1xuXG4gIC8qKiBAZGVmYXVsdCBcIndvcmtmbG93LWNoYW5nZS1ub3RpY2VcIiAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93OiBnaXRodWIuR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGdpdGh1Yi5HaXRIdWJQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3dPcHRpb25zID0ge30sXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCAnV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdycpO1xuXG4gICAgY29uc3QgZ2ggPSBzY29wZS5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHdhdGNoUGF0aHMgPSBvcHRpb25zLndhdGNoUGF0aHMgPz8gW1xuICAgICAgJy5naXRodWIvd29ya2Zsb3dzLyoqJyxcbiAgICAgICcuZ2l0aHViL2FjdGlvbnMvKionLFxuICAgIF07XG5cbiAgICB0aGlzLndvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyhcbiAgICAgIGdoLFxuICAgICAgb3B0aW9ucy53b3JrZmxvd05hbWUgPz8gJ3dvcmtmbG93LWNoYW5nZS1ub3RpY2UnLFxuICAgICk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7IHB1bGxSZXF1ZXN0VGFyZ2V0OiB7fSB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignY2hlY2snLCB7XG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgcGVybWlzc2lvbnM6IHsgcHVsbFJlcXVlc3RzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUgfSxcbiAgICAgIGVudjoge1xuICAgICAgICBHSF9UT0tFTjogJyR7eyBnaXRodWIudG9rZW4gfX0nLFxuICAgICAgICBXQVRDSF9QQVRIUzogd2F0Y2hQYXRocy5qb2luKCcgJyksXG4gICAgICB9LFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdDaGVjayBmb3Igd29ya2Zsb3cvYWN0aW9uIGNoYW5nZXMnLFxuICAgICAgICAgIHJ1bjogYHNldCAtdW8gcGlwZWZhaWxcbmNoYW5nZWQ9XCIkKGdoIGFwaSAtLXBhZ2luYXRlIFwicmVwb3MvXFwke0dJVEhVQl9SRVBPU0lUT1JZfS9wdWxscy9cXCR7eyBnaXRodWIuZXZlbnQubnVtYmVyIH19L2ZpbGVzXCIgLS1qcSAnLltdLmZpbGVuYW1lJylcIlxuaWYgWyAteiBcIiRjaGFuZ2VkXCIgXTsgdGhlbiBleGl0IDA7IGZpXG5tYXRjaGVzPVwiXCJcbndoaWxlIElGUz0gcmVhZCAtciBwYXRoOyBkb1xuICBmb3IgcCBpbiAkV0FUQ0hfUEFUSFM7IGRvXG4gICAgaWYgW1sgXCIkcGF0aFwiID09ICRwIF1dOyB0aGVuXG4gICAgICBtYXRjaGVzPVwiJG1hdGNoZXMkcGF0aFxuXCJcbiAgICAgIGJyZWFrXG4gICAgZmlcbiAgZG9uZVxuZG9uZSA8PDwgXCIkY2hhbmdlZFwiXG5pZiBbIC1uIFwiJG1hdGNoZXNcIiBdOyB0aGVuXG4gIHtcbiAgICBlY2hvIFwi4pqg77iPIE5PVEUgZm9yIHJldmlld2VyczogdGhpcyBQUiBtb2RpZmllcyBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvdyBvciBhY3Rpb24gZmlsZXMuIFBsZWFzZSByZXZpZXcgdGhlc2UgY2hhbmdlcyBjYXJlZnVsbHkgLSB0aGV5IGNhbiBhbHRlciBvciBieXBhc3Mgc3RhbmRhcmQgYnVpbGQsIHRlc3QsIGFuZCBkZXBsb3ltZW50IGNoZWNrczpcIlxuICAgIGVjaG8gXCJcIlxuICAgIHByaW50ZiBcIiVzXCIgXCIkbWF0Y2hlc1wiIHwgc2VkIFwicy9eLyAgLSAvXCJcbiAgfSB8IGdoIHByIGNvbW1lbnQgXCJcXCR7eyBnaXRodWIuZXZlbnQubnVtYmVyIH19XCIgLS1ib2R5LWZpbGUgLVxuZmlcbmAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export * from './common/environment-options';
|
|
2
|
+
export * from './common/projen-drift-check-workflow';
|
|
3
|
+
export * from './common/workflow-change-notice-workflow';
|
|
4
|
+
export * from './common/internal-actions';
|
|
5
|
+
export * from './common/actions-allowlist-guard';
|
|
2
6
|
export * from './cdk/options';
|
|
3
7
|
export * from './cdk/cdk-typescript-base';
|
|
4
8
|
export * from './cdk/cdk-infra-project';
|
|
@@ -18,3 +22,7 @@ export * from './java/components/github-packages-publish';
|
|
|
18
22
|
export * from './java/components/flyway-migration';
|
|
19
23
|
export * from './java/components/cdk-deploy-hook';
|
|
20
24
|
export * from './java/components/code-index-workflow';
|
|
25
|
+
export * from './actions/github-action-project';
|
|
26
|
+
export * from './actions/action-build-workflow';
|
|
27
|
+
export * from './actions/action-dogfood-workflow';
|
|
28
|
+
export * from './actions/action-sonar-workflow';
|
package/lib/index.js
CHANGED
|
@@ -15,6 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./common/environment-options"), exports);
|
|
18
|
+
__exportStar(require("./common/projen-drift-check-workflow"), exports);
|
|
19
|
+
__exportStar(require("./common/workflow-change-notice-workflow"), exports);
|
|
20
|
+
__exportStar(require("./common/internal-actions"), exports);
|
|
21
|
+
__exportStar(require("./common/actions-allowlist-guard"), exports);
|
|
18
22
|
__exportStar(require("./cdk/options"), exports);
|
|
19
23
|
__exportStar(require("./cdk/cdk-typescript-base"), exports);
|
|
20
24
|
__exportStar(require("./cdk/cdk-infra-project"), exports);
|
|
@@ -34,4 +38,8 @@ __exportStar(require("./java/components/github-packages-publish"), exports);
|
|
|
34
38
|
__exportStar(require("./java/components/flyway-migration"), exports);
|
|
35
39
|
__exportStar(require("./java/components/cdk-deploy-hook"), exports);
|
|
36
40
|
__exportStar(require("./java/components/code-index-workflow"), exports);
|
|
37
|
-
|
|
41
|
+
__exportStar(require("./actions/github-action-project"), exports);
|
|
42
|
+
__exportStar(require("./actions/action-build-workflow"), exports);
|
|
43
|
+
__exportStar(require("./actions/action-dogfood-workflow"), exports);
|
|
44
|
+
__exportStar(require("./actions/action-sonar-workflow"), exports);
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtEQUE2QztBQUM3Qyx1RUFBcUQ7QUFDckQsMkVBQXlEO0FBQ3pELDREQUEwQztBQUMxQyxtRUFBaUQ7QUFFakQsZ0RBQThCO0FBQzlCLDREQUEwQztBQUMxQywwREFBd0M7QUFDeEMsd0RBQXNDO0FBQ3RDLHNFQUFvRDtBQUNwRCw4RUFBNEQ7QUFDNUQsNkRBQTJDO0FBQzNDLDJEQUF5QztBQUV6QyxpREFBK0I7QUFDL0IseURBQXVDO0FBQ3ZDLDhEQUE0QztBQUM1Qyw4REFBNEM7QUFDNUMsMERBQXdDO0FBQ3hDLDBFQUF3RDtBQUN4RCxtRUFBaUQ7QUFDakQsNEVBQTBEO0FBQzFELHFFQUFtRDtBQUNuRCxvRUFBa0Q7QUFDbEQsd0VBQXNEO0FBRXRELGtFQUFnRDtBQUNoRCxrRUFBZ0Q7QUFDaEQsb0VBQWtEO0FBQ2xELGtFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vaW50ZXJuYWwtYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi9hY3Rpb25zLWFsbG93bGlzdC1ndWFyZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2RrL29wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9jZGstaW5mcmEtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9jZGstYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY29tcG9uZW50cy9lY3ItZWNzLWNvbnN0cnVjdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY29tcG9uZW50cy9lZGdlLW5ldHdvcmtpbmctY29uc3RydWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9hcHAtcnVudGltZS1zY2FmZm9sZCc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9kYXRhYmFzZS1jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2phdmEvb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1tYXZlbi1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9qYXZhLWxpYnJhcnktcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1zZXJ2aWNlLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2phdmEtYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2NvbXBvbmVudHMvbWF2ZW4tY2VudHJhbC1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2RvY2tlci1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2dpdGh1Yi1wYWNrYWdlcy1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2ZseXdheS1taWdyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2NvbXBvbmVudHMvY2RrLWRlcGxveS1ob29rJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2NvZGUtaW5kZXgtd29ya2Zsb3cnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hY3Rpb24tYnVpbGQtd29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2FjdGlvbi1kb2dmb29kLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hY3Rpb24tc29uYXItd29ya2Zsb3cnO1xuXG4iXX0=
|
|
@@ -11,7 +11,7 @@ const manual_deploy_workflow_1 = require("../../common/manual-deploy-workflow");
|
|
|
11
11
|
* deploys - see the CDK spec's open question about sharing this contract.
|
|
12
12
|
*/
|
|
13
13
|
class CdkDeployHook extends projen_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.2" };
|
|
15
15
|
constructor(project, environments, options = {}) {
|
|
16
16
|
super(project, 'CdkDeployHook');
|
|
17
17
|
if (!options.targetRepo) {
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
/** Generates a code index and publishes it to `.cai/` on checkin. */
|
|
7
7
|
class CodeIndexWorkflow extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.2" };
|
|
9
9
|
constructor(project) {
|
|
10
10
|
super(project, 'CodeIndexWorkflow');
|
|
11
11
|
const gh = project.github;
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
/** On-demand build+push of a Docker image, defaulting to Docker Hub. */
|
|
7
7
|
class DockerPublish extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.2" };
|
|
9
9
|
constructor(project, options = {}) {
|
|
10
10
|
super(project, 'DockerPublish');
|
|
11
11
|
const gh = project.github;
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
/** Adds Flyway config/dependencies + a migrations directory for DB migrations. */
|
|
7
7
|
class FlywayMigration extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.2" };
|
|
9
9
|
constructor(project) {
|
|
10
10
|
super(project, 'FlywayMigration');
|
|
11
11
|
project.pom.addPlugin('org.flywaydb/flyway-maven-plugin@^10');
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
/** On-demand publish to GitHub Packages. */
|
|
7
7
|
class GitHubPackagesPublish extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.2" };
|
|
9
9
|
constructor(project, options = {}) {
|
|
10
10
|
super(project, 'GitHubPackagesPublish');
|
|
11
11
|
const gh = project.github;
|
|
@@ -8,7 +8,7 @@ const projen_1 = require("projen");
|
|
|
8
8
|
* or OIDC trusted publishing.
|
|
9
9
|
*/
|
|
10
10
|
class MavenCentralPublish extends projen_1.Component {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.2" };
|
|
12
12
|
constructor(project, options = {}) {
|
|
13
13
|
super(project, 'MavenCentralPublish');
|
|
14
14
|
const gh = project.github;
|
|
@@ -9,7 +9,7 @@ const java_maven_base_1 = require("./java-maven-base");
|
|
|
9
9
|
* explicitly excludes Maven Central, Docker, and CDK deploy hooks.
|
|
10
10
|
*/
|
|
11
11
|
class JavaAppProject extends java_maven_base_1.JavaMavenProject {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.2" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super(options);
|
|
15
15
|
new github_packages_publish_1.GitHubPackagesPublish(this, {
|
|
@@ -7,7 +7,7 @@ const maven_central_publish_1 = require("./components/maven-central-publish");
|
|
|
7
7
|
const java_maven_base_1 = require("./java-maven-base");
|
|
8
8
|
/** Reusable Java library, published to Maven Central. */
|
|
9
9
|
class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.2" };
|
|
11
11
|
constructor(options) {
|
|
12
12
|
super(options);
|
|
13
13
|
new maven_central_publish_1.MavenCentralPublish(this, { mavenCentralOidc: options.mavenCentralOidc });
|
|
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.JavaMavenProject = void 0;
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
|
+
const actions_allowlist_guard_1 = require("../common/actions-allowlist-guard");
|
|
6
7
|
const constants_1 = require("../common/constants");
|
|
7
|
-
const
|
|
8
|
+
const internal_actions_1 = require("../common/internal-actions");
|
|
9
|
+
const projen_drift_check_workflow_1 = require("../common/projen-drift-check-workflow");
|
|
8
10
|
const upgrade_workflow_1 = require("../common/upgrade-workflow");
|
|
11
|
+
const workflow_change_notice_workflow_1 = require("../common/workflow-change-notice-workflow");
|
|
9
12
|
/**
|
|
10
13
|
* Shared Maven build skeleton for all three Java project types: standard
|
|
11
14
|
* `pom.xml`/directory layout (via `java.JavaProject`), a PR-triggered
|
|
@@ -13,7 +16,7 @@ const upgrade_workflow_1 = require("../common/upgrade-workflow");
|
|
|
13
16
|
* nightly dependency-upgrade workflow.
|
|
14
17
|
*/
|
|
15
18
|
class JavaMavenProject extends projen_1.java.JavaProject {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.2" };
|
|
17
20
|
upgradeTask;
|
|
18
21
|
buildVerifyWorkflow;
|
|
19
22
|
constructor(options) {
|
|
@@ -30,7 +33,13 @@ class JavaMavenProject extends projen_1.java.JavaProject {
|
|
|
30
33
|
if (!gh) {
|
|
31
34
|
throw new Error('JavaMavenProject requires GitHub integration');
|
|
32
35
|
}
|
|
33
|
-
|
|
36
|
+
(0, internal_actions_1.applyInternalActionOverrides)(gh);
|
|
37
|
+
new projen_drift_check_workflow_1.ProjenDriftCheckWorkflow(this, {
|
|
38
|
+
gheTokenSecret: options.gheTokenSecret ?? constants_1.DEFAULT_GHE_TOKEN_SECRET,
|
|
39
|
+
});
|
|
40
|
+
new workflow_change_notice_workflow_1.WorkflowChangeNoticeWorkflow(this);
|
|
41
|
+
new actions_allowlist_guard_1.ActionsAllowlistGuard(this);
|
|
42
|
+
const postBuildSteps = [];
|
|
34
43
|
if (options.sonarProjectKey) {
|
|
35
44
|
postBuildSteps.push({
|
|
36
45
|
name: 'SonarQube scan',
|
|
@@ -53,4 +62,4 @@ class JavaMavenProject extends projen_1.java.JavaProject {
|
|
|
53
62
|
}
|
|
54
63
|
}
|
|
55
64
|
exports.JavaMavenProject = JavaMavenProject;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1tYXZlbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1tYXZlbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBNEM7QUFFNUMsK0VBQTBFO0FBQzFFLG1EQUErRDtBQUMvRCxpRUFBMEU7QUFDMUUsdUZBQWlGO0FBQ2pGLGlFQUE2RDtBQUM3RCwrRkFBeUY7QUFJekY7Ozs7O0dBS0c7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGFBQUksQ0FBQyxXQUFXOztJQUNwQyxXQUFXLENBQU87SUFDbEIsbUJBQW1CLENBQXNCO0lBRXpELFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7WUFDOUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTztZQUNuQyxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUM7Z0JBQ2xFLE1BQU0sRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLG9DQUF3QjthQUMzRCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELElBQUEsK0NBQTRCLEVBQUMsRUFBRSxDQUFDLENBQUM7UUFFakMsSUFBSSxzREFBd0IsQ0FBQyxJQUFJLEVBQUU7WUFDakMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksb0NBQXdCO1NBQ25FLENBQUMsQ0FBQztRQUNILElBQUksOERBQTRCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSwrQ0FBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQyxNQUFNLGNBQWMsR0FBK0IsRUFBRSxDQUFDO1FBQ3RELElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVCLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLEdBQUcsRUFBRSx5Q0FBeUMsT0FBTyxDQUFDLGVBQWUsRUFBRTtnQkFDdkUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFO2FBQ25ELENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxlQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFO1lBQ25ELFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxlQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDOUQsY0FBYztTQUNmLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDekMsSUFBSSxFQUFFLGdFQUFnRTtTQUN2RSxDQUFDLENBQUM7UUFDSCxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7O0FBbERILDRDQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhc2ssIGdpdGh1YiwgamF2YSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBDb21tb25KYXZhT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBBY3Rpb25zQWxsb3dsaXN0R3VhcmQgfSBmcm9tICcuLi9jb21tb24vYWN0aW9ucy1hbGxvd2xpc3QtZ3VhcmQnO1xuaW1wb3J0IHsgREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVUIH0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbi1kcmlmdC1jaGVjay13b3JrZmxvdyc7XG5pbXBvcnQgeyBVcGdyYWRlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vdXBncmFkZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEphdmFNYXZlblByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uSmF2YU9wdGlvbnMge31cblxuLyoqXG4gKiBTaGFyZWQgTWF2ZW4gYnVpbGQgc2tlbGV0b24gZm9yIGFsbCB0aHJlZSBKYXZhIHByb2plY3QgdHlwZXM6IHN0YW5kYXJkXG4gKiBgcG9tLnhtbGAvZGlyZWN0b3J5IGxheW91dCAodmlhIGBqYXZhLkphdmFQcm9qZWN0YCksIGEgUFItdHJpZ2dlcmVkXG4gKiBidWlsZCt0ZXN0KCtTb25hclF1YmUpIHdvcmtmbG93IHRoYXQgaGFyZC1mYWlscyBvbiBwcm9qZW4gZHJpZnQsIGFuZCBhXG4gKiBuaWdodGx5IGRlcGVuZGVuY3ktdXBncmFkZSB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFNYXZlblByb2plY3QgZXh0ZW5kcyBqYXZhLkphdmFQcm9qZWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHVwZ3JhZGVUYXNrOiBUYXNrO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRWZXJpZnlXb3JrZmxvdzogZ2l0aHViLlRhc2tXb3JrZmxvdztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKYXZhTWF2ZW5Qcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGdyb3VwSWQ6IG9wdGlvbnMuZ3JvdXBJZCxcbiAgICAgIGFydGlmYWN0SWQ6IG9wdGlvbnMuYXJ0aWZhY3RJZCxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbiA/PyAnMC4xLjAnLFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdKYXZhTWF2ZW5Qcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbicpO1xuICAgIH1cblxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgbmV3IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBnaGVUb2tlblNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgfSk7XG4gICAgbmV3IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3codGhpcyk7XG4gICAgbmV3IEFjdGlvbnNBbGxvd2xpc3RHdWFyZCh0aGlzKTtcblxuICAgIGNvbnN0IHBvc3RCdWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtdO1xuICAgIGlmIChvcHRpb25zLnNvbmFyUHJvamVjdEtleSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdTb25hclF1YmUgc2NhbicsXG4gICAgICAgIHJ1bjogYG12biAtQiBzb25hcjpzb25hciAtRHNvbmFyLnByb2plY3RLZXk9JHtvcHRpb25zLnNvbmFyUHJvamVjdEtleX1gLFxuICAgICAgICBlbnY6IHsgU09OQVJfVE9LRU46ICcke3sgc2VjcmV0cy5TT05BUl9UT0tFTiB9fScgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGRWZXJpZnlXb3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiAnYnVpbGQnLFxuICAgICAgam9iSWQ6ICdidWlsZCcsXG4gICAgICB0YXNrOiB0aGlzLmJ1aWxkVGFzayxcbiAgICAgIHRyaWdnZXJzOiB7IHB1bGxSZXF1ZXN0OiB7fSwgd29ya2Zsb3dEaXNwYXRjaDoge30gfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgcG9zdEJ1aWxkU3RlcHMsXG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZ3JhZGVUYXNrID0gdGhpcy5hZGRUYXNrKCd1cGdyYWRlJywge1xuICAgICAgZXhlYzogJ212biAtQiB2ZXJzaW9uczp1c2UtbGF0ZXN0LXJlbGVhc2VzIHZlcnNpb25zOnVwZGF0ZS1wcm9wZXJ0aWVzJyxcbiAgICB9KTtcbiAgICBuZXcgVXBncmFkZVdvcmtmbG93KHRoaXMsIHsgdGFzazogdGhpcy51cGdyYWRlVGFzayB9KTtcbiAgfVxufVxuIl19
|
|
@@ -11,7 +11,7 @@ const java_maven_base_1 = require("./java-maven-base");
|
|
|
11
11
|
* Central); publish and deploy are both manual-dispatch, not on every merge.
|
|
12
12
|
*/
|
|
13
13
|
class JavaServiceProject extends java_maven_base_1.JavaMavenProject {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.2" };
|
|
15
15
|
constructor(options) {
|
|
16
16
|
super(options);
|
|
17
17
|
this.pom.addDependency('org.springframework.boot/spring-boot-starter-web@^3');
|