@cdk8s/projen-common 0.0.559 → 0.0.560

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 CHANGED
@@ -760,6 +760,6 @@
760
760
  "symbolId": "src/components/triage/triage:TriageProps"
761
761
  }
762
762
  },
763
- "version": "0.0.559",
764
- "fingerprint": "5GCMHAvY7Ro5v2HRsedKU+9cT7znBscv2l3rT0AXhHY="
763
+ "version": "0.0.560",
764
+ "fingerprint": "UsxH+0UFUA94PY7DkqROmTH0MVcKDxv97uJ89YWFIm4="
765
765
  }
@@ -19,9 +19,5 @@ export interface BackportOptions {
19
19
  * Add a Backport workflow to our repos.
20
20
  */
21
21
  export declare class Backport extends Component {
22
- private readonly repoName;
23
- private readonly config;
24
22
  constructor(project: NodeProject, options: BackportOptions);
25
- private createTask;
26
- private createWorkflow;
27
23
  }
@@ -2,97 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Backport = void 0;
4
4
  const projen_1 = require("projen");
5
- const workflows_model_1 = require("projen/lib/github/workflows-model");
5
+ const github_1 = require("projen/lib/github");
6
6
  /**
7
7
  * Add a Backport workflow to our repos.
8
8
  */
9
9
  class Backport extends projen_1.Component {
10
10
  constructor(project, options) {
11
11
  super(project);
12
- this.repoName = options.repoName;
13
- this.config = new projen_1.JsonFile(project, '.backportrc.json', {
14
- // see https://github.com/sqren/backport/blob/main/docs/config-file-options.md
15
- obj: {
16
- repoOwner: 'cdk8s-team',
17
- repoName: this.repoName,
18
- signoff: true,
19
- branchLabelMapping: {
20
- '^backport-to-(.+)$': '$1',
21
- },
22
- prTitle: '{commitMessages}',
23
- fork: false,
24
- publishStatusCommentOnFailure: true,
25
- publishStatusCommentOnSuccess: true,
26
- publishStatusCommentOnAbort: true,
27
- targetPRLabels: [project.autoApprove.label],
28
- },
29
- });
30
- project.addDevDeps('backport');
31
- // backport task to branches based on pr labels (i.e not branch specific)
32
- const backportTask = this.createTask(project);
33
- // backport tasks to explicit branches based on input
34
- for (const branch of options.branches ?? []) {
35
- this.createTask(project, branch);
36
- }
37
- this.createWorkflow(project, backportTask);
38
- }
39
- createTask(project, branch) {
40
- const name = branch ? `backport:${branch}` : 'backport';
41
- const task = project.addTask(name, { requiredEnv: ['BACKPORT_PR_NUMBER', 'GITHUB_TOKEN'] });
42
- const commands = [
43
- 'BACKPORT_HOME=$(mktemp -d)',
44
- 'mkdir -p ${BACKPORT_HOME}',
45
- `cp ${this.config.path} \${BACKPORT_HOME}`,
46
- 'cd ${BACKPORT_HOME}',
47
- ];
48
- const backport = ['backport', '--dir', `\${BACKPORT_HOME}/${this.repoName}`, '--accesstoken', '${GITHUB_TOKEN}', '--pr', '${BACKPORT_PR_NUMBER}'];
49
- if (branch) {
50
- backport.push(...['--branch', branch]);
51
- }
52
- else {
53
- backport.push('--non-interactive');
54
- }
55
- commands.push(backport.join(' '));
56
- task.exec(commands.join(' && '));
57
- return task;
58
- }
59
- createWorkflow(project, task) {
60
- const backportWorkflow = project.github.addWorkflow('backport');
61
- backportWorkflow.on({ pullRequestTarget: { types: ['closed'] } });
62
- backportWorkflow.addJob('backport', {
63
- runsOn: ['ubuntu-latest'],
64
- permissions: {
65
- contents: workflows_model_1.JobPermission.WRITE,
66
- },
67
- steps: [
68
- // needed in order to run the projen task as well
69
- // as use the backport configuration in the repo.
70
- {
71
- name: 'checkout',
72
- uses: 'actions/checkout@v3',
73
- with: {
74
- // required because we need the full history
75
- // for proper backports.
76
- 'fetch-depth': 0,
77
- },
78
- },
79
- ...project.renderWorkflowSetup({ mutable: false }),
80
- {
81
- name: 'Set Git Identity',
82
- run: 'git config --global user.name "github-actions" && git config --global user.email "github-actions@github.com"',
83
- },
84
- {
85
- name: 'backport',
86
- if: 'github.event.pull_request.merged == true',
87
- run: `npx projen ${task.name}`,
88
- env: {
89
- GITHUB_TOKEN: '${{ secrets.PROJEN_GITHUB_TOKEN }}',
90
- BACKPORT_PR_NUMBER: '${{ github.event.pull_request.number }}',
91
- },
92
- },
93
- ],
12
+ new github_1.PullRequestBackport(project, {
13
+ branches: options.branches ?? [],
94
14
  });
95
15
  }
96
16
  }
97
17
  exports.Backport = Backport;
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYWNrcG9ydC9iYWNrcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUQ7QUFDbkQsdUVBQWtFO0FBcUJsRTs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLGtCQUFTO0lBS3JDLFlBQVksT0FBb0IsRUFBRSxPQUF3QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFFakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFO1lBQ3RELDhFQUE4RTtZQUM5RSxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsT0FBTyxFQUFFLElBQUk7Z0JBQ2Isa0JBQWtCLEVBQUU7b0JBQ2xCLG9CQUFvQixFQUFFLElBQUk7aUJBQzNCO2dCQUNELE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLElBQUksRUFBRSxLQUFLO2dCQUNYLDZCQUE2QixFQUFFLElBQUk7Z0JBQ25DLDZCQUE2QixFQUFFLElBQUk7Z0JBQ25DLDJCQUEyQixFQUFFLElBQUk7Z0JBQ2pDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFZLENBQUMsS0FBSyxDQUFDO2FBQzdDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQix5RUFBeUU7UUFDekUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU5QyxxREFBcUQ7UUFDckQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRTdDLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBb0IsRUFBRSxNQUFlO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sUUFBUSxHQUFHO1lBQ2YsNEJBQTRCO1lBQzVCLDJCQUEyQjtZQUMzQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxvQkFBb0I7WUFDMUMscUJBQXFCO1NBQ3RCLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDbEosSUFBSSxNQUFNLEVBQUU7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQW9CLEVBQUUsSUFBVTtRQUVyRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLEtBQUs7YUFDOUI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsaURBQWlEO2dCQUNqRCxpREFBaUQ7Z0JBQ2pEO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osNENBQTRDO3dCQUM1Qyx3QkFBd0I7d0JBQ3hCLGFBQWEsRUFBRSxDQUFDO3FCQUNqQjtpQkFDRjtnQkFDRCxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDbEQ7b0JBQ0UsSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsR0FBRyxFQUFFLDhHQUE4RztpQkFDcEg7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLEVBQUUsRUFBRSwwQ0FBMEM7b0JBQzlDLEdBQUcsRUFBRSxjQUFjLElBQUksQ0FBQyxJQUFJLEVBQUU7b0JBQzlCLEdBQUcsRUFBRTt3QkFDSCxZQUFZLEVBQUUsb0NBQW9DO3dCQUNsRCxrQkFBa0IsRUFBRSx5Q0FBeUM7cUJBQzlEO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFFTCxDQUFDO0NBRUY7QUF2R0QsNEJBdUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBKc29uRmlsZSwgVGFzayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQmFja3BvcnRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhY2twb3J0T3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IG5hbWUuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIHNwZWNpZmljIGJyYW5jaGVzIHRvIGJhY2twb3J0IHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHNwZWNpZmljIGJyYW5jaGVzLiBXaWxsIGJlIGRldGVybWluZWQgYnkgUFIgbGFiZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBZGQgYSBCYWNrcG9ydCB3b3JrZmxvdyB0byBvdXIgcmVwb3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWNrcG9ydCBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogSnNvbkZpbGU7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IEJhY2twb3J0T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5yZXBvTmFtZSA9IG9wdGlvbnMucmVwb05hbWU7XG5cbiAgICB0aGlzLmNvbmZpZyA9IG5ldyBKc29uRmlsZShwcm9qZWN0LCAnLmJhY2twb3J0cmMuanNvbicsIHtcbiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vc3FyZW4vYmFja3BvcnQvYmxvYi9tYWluL2RvY3MvY29uZmlnLWZpbGUtb3B0aW9ucy5tZFxuICAgICAgb2JqOiB7XG4gICAgICAgIHJlcG9Pd25lcjogJ2NkazhzLXRlYW0nLFxuICAgICAgICByZXBvTmFtZTogdGhpcy5yZXBvTmFtZSxcbiAgICAgICAgc2lnbm9mZjogdHJ1ZSxcbiAgICAgICAgYnJhbmNoTGFiZWxNYXBwaW5nOiB7XG4gICAgICAgICAgJ15iYWNrcG9ydC10by0oLispJCc6ICckMScsXG4gICAgICAgIH0sXG4gICAgICAgIHByVGl0bGU6ICd7Y29tbWl0TWVzc2FnZXN9JyxcbiAgICAgICAgZm9yazogZmFsc2UsXG4gICAgICAgIHB1Ymxpc2hTdGF0dXNDb21tZW50T25GYWlsdXJlOiB0cnVlLFxuICAgICAgICBwdWJsaXNoU3RhdHVzQ29tbWVudE9uU3VjY2VzczogdHJ1ZSxcbiAgICAgICAgcHVibGlzaFN0YXR1c0NvbW1lbnRPbkFib3J0OiB0cnVlLFxuICAgICAgICB0YXJnZXRQUkxhYmVsczogW3Byb2plY3QuYXV0b0FwcHJvdmUhLmxhYmVsXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcHMoJ2JhY2twb3J0Jyk7XG5cbiAgICAvLyBiYWNrcG9ydCB0YXNrIHRvIGJyYW5jaGVzIGJhc2VkIG9uIHByIGxhYmVscyAoaS5lIG5vdCBicmFuY2ggc3BlY2lmaWMpXG4gICAgY29uc3QgYmFja3BvcnRUYXNrID0gdGhpcy5jcmVhdGVUYXNrKHByb2plY3QpO1xuXG4gICAgLy8gYmFja3BvcnQgdGFza3MgdG8gZXhwbGljaXQgYnJhbmNoZXMgYmFzZWQgb24gaW5wdXRcbiAgICBmb3IgKGNvbnN0IGJyYW5jaCBvZiBvcHRpb25zLmJyYW5jaGVzID8/IFtdKSB7XG4gICAgICB0aGlzLmNyZWF0ZVRhc2socHJvamVjdCwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZVdvcmtmbG93KHByb2plY3QsIGJhY2twb3J0VGFzayk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGFzayhwcm9qZWN0OiBOb2RlUHJvamVjdCwgYnJhbmNoPzogc3RyaW5nKTogVGFzayB7XG4gICAgY29uc3QgbmFtZSA9IGJyYW5jaCA/IGBiYWNrcG9ydDoke2JyYW5jaH1gIDogJ2JhY2twb3J0JztcbiAgICBjb25zdCB0YXNrID0gcHJvamVjdC5hZGRUYXNrKG5hbWUsIHsgcmVxdWlyZWRFbnY6IFsnQkFDS1BPUlRfUFJfTlVNQkVSJywgJ0dJVEhVQl9UT0tFTiddIH0pO1xuICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgJ0JBQ0tQT1JUX0hPTUU9JChta3RlbXAgLWQpJyxcbiAgICAgICdta2RpciAtcCAke0JBQ0tQT1JUX0hPTUV9JyxcbiAgICAgIGBjcCAke3RoaXMuY29uZmlnLnBhdGh9IFxcJHtCQUNLUE9SVF9IT01FfWAsXG4gICAgICAnY2QgJHtCQUNLUE9SVF9IT01FfScsXG4gICAgXTtcbiAgICBjb25zdCBiYWNrcG9ydCA9IFsnYmFja3BvcnQnLCAnLS1kaXInLCBgXFwke0JBQ0tQT1JUX0hPTUV9LyR7dGhpcy5yZXBvTmFtZX1gLCAnLS1hY2Nlc3N0b2tlbicsICcke0dJVEhVQl9UT0tFTn0nLCAnLS1wcicsICcke0JBQ0tQT1JUX1BSX05VTUJFUn0nXTtcbiAgICBpZiAoYnJhbmNoKSB7XG4gICAgICBiYWNrcG9ydC5wdXNoKC4uLlsnLS1icmFuY2gnLCBicmFuY2hdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFja3BvcnQucHVzaCgnLS1ub24taW50ZXJhY3RpdmUnKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKGJhY2twb3J0LmpvaW4oJyAnKSk7XG4gICAgdGFzay5leGVjKGNvbW1hbmRzLmpvaW4oJyAmJiAnKSk7XG4gICAgcmV0dXJuIHRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdvcmtmbG93KHByb2plY3Q6IE5vZGVQcm9qZWN0LCB0YXNrOiBUYXNrKSB7XG5cbiAgICBjb25zdCBiYWNrcG9ydFdvcmtmbG93ID0gcHJvamVjdC5naXRodWIhLmFkZFdvcmtmbG93KCdiYWNrcG9ydCcpO1xuICAgIGJhY2twb3J0V29ya2Zsb3cub24oeyBwdWxsUmVxdWVzdFRhcmdldDogeyB0eXBlczogWydjbG9zZWQnXSB9IH0pO1xuICAgIGJhY2twb3J0V29ya2Zsb3cuYWRkSm9iKCdiYWNrcG9ydCcsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICAvLyBuZWVkZWQgaW4gb3JkZXIgdG8gcnVuIHRoZSBwcm9qZW4gdGFzayBhcyB3ZWxsXG4gICAgICAgIC8vIGFzIHVzZSB0aGUgYmFja3BvcnQgY29uZmlndXJhdGlvbiBpbiB0aGUgcmVwby5cbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjaGVja291dCcsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjMnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIHJlcXVpcmVkIGJlY2F1c2Ugd2UgbmVlZCB0aGUgZnVsbCBoaXN0b3J5XG4gICAgICAgICAgICAvLyBmb3IgcHJvcGVyIGJhY2twb3J0cy5cbiAgICAgICAgICAgICdmZXRjaC1kZXB0aCc6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4ucHJvamVjdC5yZW5kZXJXb3JrZmxvd1NldHVwKHsgbXV0YWJsZTogZmFsc2UgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0IEdpdCBJZGVudGl0eScsXG4gICAgICAgICAgcnVuOiAnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJnaXRodWItYWN0aW9uc1wiICYmIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCBcImdpdGh1Yi1hY3Rpb25zQGdpdGh1Yi5jb21cIicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnYmFja3BvcnQnLFxuICAgICAgICAgIGlmOiAnZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5tZXJnZWQgPT0gdHJ1ZScsXG4gICAgICAgICAgcnVuOiBgbnB4IHByb2plbiAke3Rhc2submFtZX1gLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgR0lUSFVCX1RPS0VOOiAnJHt7IHNlY3JldHMuUFJPSkVOX0dJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgICAgICBCQUNLUE9SVF9QUl9OVU1CRVI6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5udW1iZXIgfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gIH1cblxufSJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYWNrcG9ydC9iYWNrcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsOENBQXdEO0FBcUJ4RDs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLGtCQUFTO0lBRXJDLFlBQVksT0FBb0IsRUFBRSxPQUF3QjtRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLDRCQUFtQixDQUFDLE9BQU8sRUFBRTtZQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFO1NBQ2pDLENBQUMsQ0FBQztJQUVMLENBQUM7Q0FFRjtBQVhELDRCQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFB1bGxSZXF1ZXN0QmFja3BvcnQgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEJhY2twb3J0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYWNrcG9ydE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBzcGVjaWZpYyBicmFuY2hlcyB0byBiYWNrcG9ydCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzcGVjaWZpYyBicmFuY2hlcy4gV2lsbCBiZSBkZXRlcm1pbmVkIGJ5IFBSIGxhYmVscy5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWRkIGEgQmFja3BvcnQgd29ya2Zsb3cgdG8gb3VyIHJlcG9zLlxuICovXG5leHBvcnQgY2xhc3MgQmFja3BvcnQgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBCYWNrcG9ydE9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIG5ldyBQdWxsUmVxdWVzdEJhY2twb3J0KHByb2plY3QsIHtcbiAgICAgIGJyYW5jaGVzOiBvcHRpb25zLmJyYW5jaGVzID8/IFtdLFxuICAgIH0pO1xuXG4gIH1cblxufSJdfQ==
@@ -1,5 +1,5 @@
1
- import { Component, JsonFile, Task } from 'projen';
2
- import { JobPermission } from 'projen/lib/github/workflows-model';
1
+ import { Component } from 'projen';
2
+ import { PullRequestBackport } from 'projen/lib/github';
3
3
  import { NodeProject } from 'projen/lib/javascript';
4
4
 
5
5
  /**
@@ -25,103 +25,11 @@ export interface BackportOptions {
25
25
  */
26
26
  export class Backport extends Component {
27
27
 
28
- private readonly repoName: string;
29
- private readonly config: JsonFile;
30
-
31
28
  constructor(project: NodeProject, options: BackportOptions) {
32
29
  super(project);
33
30
 
34
- this.repoName = options.repoName;
35
-
36
- this.config = new JsonFile(project, '.backportrc.json', {
37
- // see https://github.com/sqren/backport/blob/main/docs/config-file-options.md
38
- obj: {
39
- repoOwner: 'cdk8s-team',
40
- repoName: this.repoName,
41
- signoff: true,
42
- branchLabelMapping: {
43
- '^backport-to-(.+)$': '$1',
44
- },
45
- prTitle: '{commitMessages}',
46
- fork: false,
47
- publishStatusCommentOnFailure: true,
48
- publishStatusCommentOnSuccess: true,
49
- publishStatusCommentOnAbort: true,
50
- targetPRLabels: [project.autoApprove!.label],
51
- },
52
- });
53
-
54
- project.addDevDeps('backport');
55
-
56
- // backport task to branches based on pr labels (i.e not branch specific)
57
- const backportTask = this.createTask(project);
58
-
59
- // backport tasks to explicit branches based on input
60
- for (const branch of options.branches ?? []) {
61
- this.createTask(project, branch);
62
- }
63
-
64
- this.createWorkflow(project, backportTask);
65
-
66
- }
67
-
68
- private createTask(project: NodeProject, branch?: string): Task {
69
- const name = branch ? `backport:${branch}` : 'backport';
70
- const task = project.addTask(name, { requiredEnv: ['BACKPORT_PR_NUMBER', 'GITHUB_TOKEN'] });
71
- const commands = [
72
- 'BACKPORT_HOME=$(mktemp -d)',
73
- 'mkdir -p ${BACKPORT_HOME}',
74
- `cp ${this.config.path} \${BACKPORT_HOME}`,
75
- 'cd ${BACKPORT_HOME}',
76
- ];
77
- const backport = ['backport', '--dir', `\${BACKPORT_HOME}/${this.repoName}`, '--accesstoken', '${GITHUB_TOKEN}', '--pr', '${BACKPORT_PR_NUMBER}'];
78
- if (branch) {
79
- backport.push(...['--branch', branch]);
80
- } else {
81
- backport.push('--non-interactive');
82
- }
83
-
84
- commands.push(backport.join(' '));
85
- task.exec(commands.join(' && '));
86
- return task;
87
- }
88
-
89
- private createWorkflow(project: NodeProject, task: Task) {
90
-
91
- const backportWorkflow = project.github!.addWorkflow('backport');
92
- backportWorkflow.on({ pullRequestTarget: { types: ['closed'] } });
93
- backportWorkflow.addJob('backport', {
94
- runsOn: ['ubuntu-latest'],
95
- permissions: {
96
- contents: JobPermission.WRITE,
97
- },
98
- steps: [
99
- // needed in order to run the projen task as well
100
- // as use the backport configuration in the repo.
101
- {
102
- name: 'checkout',
103
- uses: 'actions/checkout@v3',
104
- with: {
105
- // required because we need the full history
106
- // for proper backports.
107
- 'fetch-depth': 0,
108
- },
109
- },
110
- ...project.renderWorkflowSetup({ mutable: false }),
111
- {
112
- name: 'Set Git Identity',
113
- run: 'git config --global user.name "github-actions" && git config --global user.email "github-actions@github.com"',
114
- },
115
- {
116
- name: 'backport',
117
- if: 'github.event.pull_request.merged == true',
118
- run: `npx projen ${task.name}`,
119
- env: {
120
- GITHUB_TOKEN: '${{ secrets.PROJEN_GITHUB_TOKEN }}',
121
- BACKPORT_PR_NUMBER: '${{ github.event.pull_request.number }}',
122
- },
123
- },
124
- ],
31
+ new PullRequestBackport(project, {
32
+ branches: options.branches ?? [],
125
33
  });
126
34
 
127
35
  }
@@ -59,5 +59,5 @@ class Triage extends projen_1.Component {
59
59
  }
60
60
  exports.Triage = Triage;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- Triage[_a] = { fqn: "@cdk8s/projen-common.Triage", version: "0.0.559" };
62
+ Triage[_a] = { fqn: "@cdk8s/projen-common.Triage", version: "0.0.560" };
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHJpYWdlL3RyaWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQyx1RUFBa0U7QUErQmxFOzs7O0dBSUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxrQkFBUztJQUVuQyxZQUFZLE9BQW9CLEVBQUUsS0FBa0I7UUFDbEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsa0RBQWtEO1FBQ2xELDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxnREFBZ0QsQ0FBQztRQUVwRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ1YsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNsQjtZQUNELFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbEI7U0FDRixDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1lBQ25DLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSwrQkFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDL0Usa0NBQWtDO1lBQ2xDLGlDQUFpQztZQUNqQywySUFBMkk7WUFDM0ksRUFBRSxFQUFFLHNDQUFzQyxLQUFLLENBQUMsUUFBUSxxS0FBcUs7WUFDN04sTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQ3pCLEtBQUssRUFBRSxDQUFDO29CQUNOLElBQUksRUFBRSwrQkFBK0I7b0JBQ3JDLElBQUksRUFBRTt3QkFDSixhQUFhLEVBQUUsVUFBVTt3QkFDekIsY0FBYyxFQUFFLG9DQUFvQztxQkFDckQ7aUJBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQztRQUVILElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO2dCQUNsQyxXQUFXLEVBQUUsRUFBRSxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xELEVBQUUsRUFBRSxzQ0FBc0MsS0FBSyxDQUFDLFFBQVEsb0dBQW9HO2dCQUM1SixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxDQUFDO3dCQUNOLElBQUksRUFBRSx3Q0FBd0M7d0JBQzlDLElBQUksRUFBRTs0QkFDSiwwRkFBMEY7NEJBQzFGLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ2pDLFlBQVksRUFBRSxvQ0FBb0M7eUJBQ25EO3FCQUNGLENBQUM7YUFDSCxDQUFDLENBQUM7U0FDSjtJQUVILENBQUM7O0FBbERILHdCQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBQcm9wcyBmb3IgYFRyaWFnZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpYWdlUHJvcHMgZXh0ZW5kcyBUcmlhZ2VPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVHJpYWdlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlhZ2VPcHRpb25zIHtcblxuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgbGFiZWxzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gUFJzLlxuICAgKiBBdXRvbWF0aW9uIFBScyBhcmUgZXhjbHVkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbGFiZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJMYWJlbHM/OiBzdHJpbmdbXTtcblxufVxuXG4vKipcbiAqIEFkZCBhIFRyaWFnZSB3b3JrZmxvdyB0byBvdXIgcmVwb3MuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFya2V0cGxhY2UvYWN0aW9ucy9hZGQtdG8tZ2l0aHViLXByb2plY3RzXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmlhZ2UgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBwcm9wczogVHJpYWdlUHJvcHMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8vIGhtbSwgd2UgbmVlZCB0byByZW1lbWJlciB0byB1cGRhdGUgdGhpcyBpbiAyMDI0XG4gICAgLy8gb3IgZmlndXJlIG91dCBob3cgdG8gbWFrZSB0aGlzIGR5bmFtaWMuXG4gICAgY29uc3QgcHJvamVjdFVybCA9ICdodHRwczovL2dpdGh1Yi5jb20vb3Jncy9jZGs4cy10ZWFtL3Byb2plY3RzLzEyJztcblxuICAgIGNvbnN0IHdvcmtmbG93ID0gcHJvamVjdC5naXRodWIhLmFkZFdvcmtmbG93KCd0cmlhZ2UnKTtcbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICBpc3N1ZXM6IHtcbiAgICAgICAgdHlwZXM6IFsnb3BlbmVkJ10sXG4gICAgICB9LFxuICAgICAgcHVsbFJlcXVlc3Q6IHtcbiAgICAgICAgdHlwZXM6IFsnb3BlbmVkJ10sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHdvcmtmbG93LmFkZEpvYignYXNzaWduLXRvLXByb2plY3QnLCB7XG4gICAgICBwZXJtaXNzaW9uczogeyBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsIHB1bGxSZXF1ZXN0czogSm9iUGVybWlzc2lvbi5XUklURSB9LFxuICAgICAgLy8gZG9udCB0cmlhZ2UgaXNzdWVzL3BycyBvbiBmb3Jrc1xuICAgICAgLy8gZG9udCB0cmlhZ2UgYXV0aW1hdGlvbiBib3QgcHJzXG4gICAgICAvLyBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy91c2luZy1qb2JzL3VzaW5nLWNvbmRpdGlvbnMtdG8tY29udHJvbC1qb2ItZXhlY3V0aW9uI2V4YW1wbGUtb25seS1ydW4tam9iLWZvci1zcGVjaWZpYy1yZXBvc2l0b3J5XG4gICAgICBpZjogYChnaXRodWIucmVwb3NpdG9yeSA9PSBcXCdjZGs4cy10ZWFtLyR7cHJvcHMucmVwb05hbWV9XFwnKSAmJiAoZ2l0aHViLmV2ZW50Lmlzc3VlIHx8IChnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LnVzZXIubG9naW4gIT0gXFwnY2RrOHMtYXV0b21hdGlvblxcJyAmJiBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVwby5mdWxsX25hbWUgPT0gZ2l0aHViLnJlcG9zaXRvcnkpKWAsXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgc3RlcHM6IFt7XG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL2FkZC10by1wcm9qZWN0QHYwLjQuMCcsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAncHJvamVjdC11cmwnOiBwcm9qZWN0VXJsLFxuICAgICAgICAgICdnaXRodWItdG9rZW4nOiAnJHt7IHNlY3JldHMuUFJPSkVOX0dJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5wckxhYmVscykge1xuICAgICAgd29ya2Zsb3cuYWRkSm9iKCdhZGQtbGFiZWxzLXRvLXByJywge1xuICAgICAgICBwZXJtaXNzaW9uczogeyBwdWxsUmVxdWVzdHM6IEpvYlBlcm1pc3Npb24uV1JJVEUgfSxcbiAgICAgICAgaWY6IGAoZ2l0aHViLnJlcG9zaXRvcnkgPT0gXFwnY2RrOHMtdGVhbS8ke3Byb3BzLnJlcG9OYW1lfVxcJykgJiYgKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QgJiYgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC51c2VyLmxvZ2luICE9IFxcJ2NkazhzLWF1dG9tYXRpb25cXCcpYCxcbiAgICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgICAgc3RlcHM6IFt7XG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMtZWNvc3lzdGVtL2FjdGlvbi1hZGQtbGFiZWxzQHYxJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAvLyB3ZWlyZDogaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMtZWNvc3lzdGVtL2FjdGlvbi1hZGQtbGFiZWxzL2Jsb2IvbWFpbi9zcmMvbWFpbi50cyNMMTBcbiAgICAgICAgICAgIGxhYmVsczogcHJvcHMucHJMYWJlbHMuam9pbignXFxuJyksXG4gICAgICAgICAgICBnaXRodWJfdG9rZW46ICcke3sgc2VjcmV0cy5QUk9KRU5fR0lUSFVCX1RPS0VOIH19JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9XSxcbiAgICAgIH0pO1xuICAgIH1cblxuICB9XG59Il19
@@ -66,7 +66,7 @@ class Cdk8sTeamJsiiProject extends projen_1.cdk.JsiiProject {
66
66
  }
67
67
  exports.Cdk8sTeamJsiiProject = Cdk8sTeamJsiiProject;
68
68
  _a = JSII_RTTI_SYMBOL_1;
69
- Cdk8sTeamJsiiProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamJsiiProject", version: "0.0.559" };
69
+ Cdk8sTeamJsiiProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamJsiiProject", version: "0.0.560" };
70
70
  function pythonTarget(name) {
71
71
  const repoName = node.buildRepositoryName(name);
72
72
  return {
@@ -139,7 +139,7 @@ class Cdk8sTeamNodeProject extends projen_1.javascript.NodeProject {
139
139
  }
140
140
  exports.Cdk8sTeamNodeProject = Cdk8sTeamNodeProject;
141
141
  _a = JSII_RTTI_SYMBOL_1;
142
- Cdk8sTeamNodeProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamNodeProject", version: "0.0.559" };
142
+ Cdk8sTeamNodeProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamNodeProject", version: "0.0.560" };
143
143
  /**
144
144
  * Validate that the options map does not contain any invalid option.
145
145
  * This would usually be implemented at compile time using Omit/Pick but jsii
@@ -44,5 +44,5 @@ class Cdk8sTeamTypeScriptProject extends projen_1.typescript.TypeScriptProject {
44
44
  }
45
45
  exports.Cdk8sTeamTypeScriptProject = Cdk8sTeamTypeScriptProject;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- Cdk8sTeamTypeScriptProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamTypeScriptProject", version: "0.0.559" };
47
+ Cdk8sTeamTypeScriptProject[_a] = { fqn: "@cdk8s/projen-common.Cdk8sTeamTypeScriptProject", version: "0.0.560" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUNBQXVDO0FBQ3ZDLG1DQUFvRDtBQUNwRCxtQ0FBbUM7QUFDbkMsK0JBQStCO0FBRS9CLDhEQUEyRDtBQTZDM0Q7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBRTFFLFlBQVksT0FBMEM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQyxHQUFHLGdCQUFnQjtnQkFDbkIsR0FBRyxrQkFBa0I7Z0JBQ3JCLGFBQWEsRUFBRSxvQkFBb0I7YUFDcEMsRUFBRSxPQUFPLENBQUMsQ0FBd0MsQ0FBQztRQUVwRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVFLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9GLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNqQyxRQUFRLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxRQUFRO1lBQ3BFLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1NBQ3JDLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQUU7WUFDN0IsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUN0RTtRQUVELHdGQUF3RjtRQUN4Rix1R0FBdUc7UUFDdkcsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsdUJBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7QUF2Q0gsZ0VBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZGVlcG1lcmdlIGZyb20gJ2RlZXBtZXJnZSc7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSwgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgKiBhcyBnaXRodWIgZnJvbSAnLi9naXRodWInO1xuaW1wb3J0ICogYXMgbm9kZSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgVHJpYWdlT3B0aW9ucyB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmFja3BvcnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2JhY2twb3J0L2JhY2twb3J0JztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrOHNUZWFtVHlwZVNjcmlwdFByb2plY3RgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENkazhzVGVhbVR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkgaW5zaWRlIHRoZSBjZGs4cy10ZWFtXG4gICAqIG9yZyB3aGVyZSB0aGUgY29kZSBvZiB0aGUgcHJvamVjdCBpcyBsb2NhdGUgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHBhY2thZ2UgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBDb25maWd1cmUgYSBiYWNrcG9ydCB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGJhY2twb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQnJhbmNoZXMgdG8gYmFja3BvcnQgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gV2lsbCBiZSBkZXJpdmVkIGZyb20gUFIgbGFiZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3BvcnRCcmFuY2hlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlcyB0aGF0IGNvbXBpbGUgdGhlIHByb2plY3QgYXBhcnQgZnJvbSB0aGUgdHlwZXNjcmlwdC9qc2lpIGNvbXBpbGVyLlxuICAgKiBBbnkgcGFja2FnZSB0aGF0IHByb2R1Y2VzIGEgcHVibGlzaGVkIGFydGlmYWN0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGlzIGxpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBjb21waWxlciBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ29tcGlsZXJEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIGB0cmlhZ2VgIHdvcmtmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGN1c3RvbSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJpYWdlT3B0aW9ucz86IFRyaWFnZU9wdGlvbnM7XG5cbn1cblxuLyoqXG4gKiBAcGppZCBjZGs4cy10ZWFtLXR5cGVzY3JpcHQtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgQ2RrOHNUZWFtVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGs4c1RlYW1UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBub2RlLnZhbGlkYXRlT3B0aW9ucyhvcHRpb25zKTtcbiAgICBub2RlLnZhbGlkYXRlUHJvamVjdE5hbWUob3B0aW9ucyk7XG5cbiAgICBjb25zdCBmaXhlZE5vZGVPcHRpb25zID0gbm9kZS5idWlsZE5vZGVQcm9qZWN0Rml4ZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRlZmF1bHROb2RlT3B0aW9ucyA9IG5vZGUuYnVpbGROb2RlUHJvamVjdERlZmF1bHRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGRlZmF1bHRHaXRIdWJPcHRpb25zID0gZ2l0aHViLmJ1aWxkR2l0SHViRGVmYXVsdE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBjb25zdCBmaW5hbE9wdGlvbnMgPSBkZWVwbWVyZ2UuYWxsKFt7XG4gICAgICAuLi5maXhlZE5vZGVPcHRpb25zLFxuICAgICAgLi4uZGVmYXVsdE5vZGVPcHRpb25zLFxuICAgICAgZ2l0aHViT3B0aW9uczogZGVmYXVsdEdpdEh1Yk9wdGlvbnMsXG4gICAgfSwgb3B0aW9uc10pIGFzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zO1xuXG4gICAgc3VwZXIoZmluYWxPcHRpb25zKTtcblxuICAgIGNvbnN0IHJlcG9OYW1lID0gb3B0aW9ucy5yZXBvTmFtZSA/PyBub2RlLmJ1aWxkUmVwb3NpdG9yeU5hbWUob3B0aW9ucy5uYW1lKTtcblxuICAgIGNvbnN0IGNvbXBpbGVyRGVwZW5kZW5jaWVzID0gWy4uLihvcHRpb25zLmFkZGl0aW9uYWxDb21waWxlckRlcGVuZGVuY2llcyA/PyBbXSksICd0eXBlc2NyaXB0J107XG5cbiAgICBub2RlLmFkZENvbXBvbmVudHModGhpcywgcmVwb05hbWUsIHtcbiAgICAgIGJyYW5jaGVzOiBmaW5hbE9wdGlvbnMuZGVwc1VwZ3JhZGVPcHRpb25zPy53b3JrZmxvd09wdGlvbnM/LmJyYW5jaGVzLFxuICAgICAgY29tcGlsZXJEZXBzOiBjb21waWxlckRlcGVuZGVuY2llcyxcbiAgICAgIHRyaWFnZU9wdGlvbnM6IG9wdGlvbnMudHJpYWdlT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLmJhY2twb3J0ID8/IGZhbHNlKSB7XG4gICAgICBuZXcgQmFja3BvcnQodGhpcywgeyBicmFuY2hlczogb3B0aW9ucy5iYWNrcG9ydEJyYW5jaGVzLCByZXBvTmFtZSB9KTtcbiAgICB9XG5cbiAgICAvLyBwcmV2ZW50IHVwZ3JhZGluZyBAdHlwZXMvbm9kZSBiZWNhdXNlIGNyeXB0byBhbmQgZXZlbnRzIGJyb2tlIHRoZWlyIHR5cGUgZGVmaW5pdGlvbnMuXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jZGs4cy10ZWFtL2NkazhzLXByb2plbi1jb21tb24vYWN0aW9ucy9ydW5zLzg2NzI0Njg0NTQvam9iLzIzNzgyODIwMDk4P3ByPTcyN1xuICAgIC8vIGhvcGVmdWxseSBieSB0aGUgdGltZSB3ZSBhY3R1YWxseSBuZWVkIHRvIHVwZ3JhZGUsIGl0IHdpbGwgYWxyZWFkeSBiZSBmaXhlZC5cbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeSgnQHR5cGVzL25vZGUnKTtcbiAgICB0aGlzLmRlcHMuYWRkRGVwZW5kZW5jeSgnQHR5cGVzL25vZGVAMTYuMTguNzgnLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG5cbiAgICBub2RlLmxpbWl0UmVsZWFzZUNvbmN1cnJlbmN5KHRoaXMpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -55,7 +55,7 @@
55
55
  "jsii-docgen": "^10.5.0",
56
56
  "jsii-pacmak": "^1.105.0",
57
57
  "jsii-rosetta": "1.x",
58
- "projen": "^0.90.5",
58
+ "projen": "^0.90.6",
59
59
  "ts-jest": "^27",
60
60
  "ts-node": "^10.9.2",
61
61
  "typescript": "^4.9.5"
@@ -78,7 +78,7 @@
78
78
  },
79
79
  "main": "lib/index.js",
80
80
  "license": "Apache-2.0",
81
- "version": "0.0.559",
81
+ "version": "0.0.560",
82
82
  "jest": {
83
83
  "coverageProvider": "v8",
84
84
  "testMatch": [