@backstage/plugin-scaffolder-backend-module-github 0.5.1-next.1 → 0.5.1
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/CHANGELOG.md +61 -0
- package/dist/actions/gitHelpers.cjs.js +90 -0
- package/dist/actions/gitHelpers.cjs.js.map +1 -0
- package/dist/actions/gitHubEnvironment.examples.cjs.js +340 -0
- package/dist/actions/gitHubEnvironment.examples.cjs.js.map +1 -0
- package/dist/actions/github.cjs.js +187 -0
- package/dist/actions/github.cjs.js.map +1 -0
- package/dist/actions/github.examples.cjs.js +60 -0
- package/dist/actions/github.examples.cjs.js.map +1 -0
- package/dist/actions/githubActionsDispatch.cjs.js +84 -0
- package/dist/actions/githubActionsDispatch.cjs.js.map +1 -0
- package/dist/actions/githubActionsDispatch.examples.cjs.js +66 -0
- package/dist/actions/githubActionsDispatch.examples.cjs.js.map +1 -0
- package/dist/actions/githubAutolinks.cjs.js +76 -0
- package/dist/actions/githubAutolinks.cjs.js.map +1 -0
- package/dist/actions/githubAutolinks.examples.cjs.js +30 -0
- package/dist/actions/githubAutolinks.examples.cjs.js.map +1 -0
- package/dist/actions/githubBranchProtection.cjs.js +97 -0
- package/dist/actions/githubBranchProtection.cjs.js.map +1 -0
- package/dist/actions/githubBranchProtection.examples.cjs.js +62 -0
- package/dist/actions/githubBranchProtection.examples.cjs.js.map +1 -0
- package/dist/actions/githubDeployKey.cjs.js +123 -0
- package/dist/actions/githubDeployKey.cjs.js.map +1 -0
- package/dist/actions/githubDeployKey.examples.cjs.js +30 -0
- package/dist/actions/githubDeployKey.examples.cjs.js.map +1 -0
- package/dist/actions/githubEnvironment.cjs.js +255 -0
- package/dist/actions/githubEnvironment.cjs.js.map +1 -0
- package/dist/actions/githubIssuesLabel.cjs.js +79 -0
- package/dist/actions/githubIssuesLabel.cjs.js.map +1 -0
- package/dist/actions/githubIssuesLabel.examples.cjs.js +46 -0
- package/dist/actions/githubIssuesLabel.examples.cjs.js.map +1 -0
- package/dist/actions/githubPagesEnable.cjs.js +88 -0
- package/dist/actions/githubPagesEnable.cjs.js.map +1 -0
- package/dist/actions/githubPagesEnable.examples.cjs.js +224 -0
- package/dist/actions/githubPagesEnable.examples.cjs.js.map +1 -0
- package/dist/actions/githubPullRequest.cjs.js +336 -0
- package/dist/actions/githubPullRequest.cjs.js.map +1 -0
- package/dist/actions/githubPullRequest.examples.cjs.js +260 -0
- package/dist/actions/githubPullRequest.examples.cjs.js.map +1 -0
- package/dist/actions/githubRepoCreate.cjs.js +130 -0
- package/dist/actions/githubRepoCreate.cjs.js.map +1 -0
- package/dist/actions/githubRepoCreate.examples.cjs.js +964 -0
- package/dist/actions/githubRepoCreate.examples.cjs.js.map +1 -0
- package/dist/actions/githubRepoPush.cjs.js +122 -0
- package/dist/actions/githubRepoPush.cjs.js.map +1 -0
- package/dist/actions/githubRepoPush.examples.cjs.js +57 -0
- package/dist/actions/githubRepoPush.examples.cjs.js.map +1 -0
- package/dist/actions/githubWebhook.cjs.js +135 -0
- package/dist/actions/githubWebhook.cjs.js.map +1 -0
- package/dist/actions/githubWebhook.examples.cjs.js +113 -0
- package/dist/actions/githubWebhook.examples.cjs.js.map +1 -0
- package/dist/actions/helpers.cjs.js +292 -0
- package/dist/actions/helpers.cjs.js.map +1 -0
- package/dist/actions/inputProperties.cjs.js +319 -0
- package/dist/actions/inputProperties.cjs.js.map +1 -0
- package/dist/actions/outputProperties.cjs.js +19 -0
- package/dist/actions/outputProperties.cjs.js.map +1 -0
- package/dist/index.cjs.js +31 -4306
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +33 -1
- package/dist/module.cjs.js +92 -0
- package/dist/module.cjs.js.map +1 -0
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
# @backstage/plugin-scaffolder-backend-module-github
|
|
2
2
|
|
|
3
|
+
## 0.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8ce0c4c: Add `github:branch-protection:create` scaffolder action to set branch protection on an existing repository. Example usage:
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
- id: set-branch-protection
|
|
11
|
+
name: Set Branch Protection
|
|
12
|
+
action: github:branch-protection:create
|
|
13
|
+
input:
|
|
14
|
+
repoUrl: 'github.com?repo=backstage&owner=backstage'
|
|
15
|
+
branch: master
|
|
16
|
+
enforceAdmins: true # default
|
|
17
|
+
requiredApprovingReviewCount: 1 # default
|
|
18
|
+
requireBranchesToBeUpToDate: true # default
|
|
19
|
+
requireCodeOwnerReviews: true
|
|
20
|
+
dismissStaleReviews: true
|
|
21
|
+
requiredConversationResolution: true
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- 094eaa3: Remove references to in-repo backend-common
|
|
25
|
+
- Updated dependencies
|
|
26
|
+
- @backstage/plugin-scaffolder-node@0.5.0
|
|
27
|
+
- @backstage/integration@1.15.1
|
|
28
|
+
- @backstage/catalog-client@1.7.1
|
|
29
|
+
- @backstage/backend-plugin-api@1.0.1
|
|
30
|
+
- @backstage/catalog-model@1.7.0
|
|
31
|
+
- @backstage/config@1.2.0
|
|
32
|
+
- @backstage/errors@1.2.4
|
|
33
|
+
|
|
34
|
+
## 0.5.1-next.2
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- 8ce0c4c: Add `github:branch-protection:create` scaffolder action to set branch protection on an existing repository. Example usage:
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
- id: set-branch-protection
|
|
42
|
+
name: Set Branch Protection
|
|
43
|
+
action: github:branch-protection:create
|
|
44
|
+
input:
|
|
45
|
+
repoUrl: 'github.com?repo=backstage&owner=backstage'
|
|
46
|
+
branch: master
|
|
47
|
+
enforceAdmins: true # default
|
|
48
|
+
requiredApprovingReviewCount: 1 # default
|
|
49
|
+
requireBranchesToBeUpToDate: true # default
|
|
50
|
+
requireCodeOwnerReviews: true
|
|
51
|
+
dismissStaleReviews: true
|
|
52
|
+
requiredConversationResolution: true
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- Updated dependencies
|
|
56
|
+
- @backstage/integration@1.15.1-next.1
|
|
57
|
+
- @backstage/catalog-client@1.7.1-next.0
|
|
58
|
+
- @backstage/plugin-scaffolder-node@0.5.0-next.2
|
|
59
|
+
- @backstage/backend-plugin-api@1.0.1-next.1
|
|
60
|
+
- @backstage/catalog-model@1.7.0
|
|
61
|
+
- @backstage/config@1.2.0
|
|
62
|
+
- @backstage/errors@1.2.4
|
|
63
|
+
|
|
3
64
|
## 0.5.1-next.1
|
|
4
65
|
|
|
5
66
|
### Patch Changes
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var errors = require('@backstage/errors');
|
|
4
|
+
|
|
5
|
+
const enableBranchProtectionOnDefaultRepoBranch = async ({
|
|
6
|
+
repoName,
|
|
7
|
+
client,
|
|
8
|
+
owner,
|
|
9
|
+
logger,
|
|
10
|
+
requireCodeOwnerReviews,
|
|
11
|
+
bypassPullRequestAllowances,
|
|
12
|
+
requiredApprovingReviewCount,
|
|
13
|
+
restrictions,
|
|
14
|
+
requiredStatusCheckContexts = [],
|
|
15
|
+
requireBranchesToBeUpToDate = true,
|
|
16
|
+
requiredConversationResolution = false,
|
|
17
|
+
requireLastPushApproval = false,
|
|
18
|
+
defaultBranch = "master",
|
|
19
|
+
enforceAdmins = true,
|
|
20
|
+
dismissStaleReviews = false,
|
|
21
|
+
requiredCommitSigning = false
|
|
22
|
+
}) => {
|
|
23
|
+
const tryOnce = async () => {
|
|
24
|
+
try {
|
|
25
|
+
await client.rest.repos.updateBranchProtection({
|
|
26
|
+
mediaType: {
|
|
27
|
+
/**
|
|
28
|
+
* 👇 we need this preview because allowing a custom
|
|
29
|
+
* reviewer count on branch protection is a preview
|
|
30
|
+
* feature
|
|
31
|
+
*
|
|
32
|
+
* More here: https://docs.github.com/en/rest/overview/api-previews#require-multiple-approving-reviews
|
|
33
|
+
*/
|
|
34
|
+
previews: ["luke-cage-preview"]
|
|
35
|
+
},
|
|
36
|
+
owner,
|
|
37
|
+
repo: repoName,
|
|
38
|
+
branch: defaultBranch,
|
|
39
|
+
required_status_checks: {
|
|
40
|
+
strict: requireBranchesToBeUpToDate,
|
|
41
|
+
contexts: requiredStatusCheckContexts
|
|
42
|
+
},
|
|
43
|
+
restrictions: restrictions ?? null,
|
|
44
|
+
enforce_admins: enforceAdmins,
|
|
45
|
+
required_pull_request_reviews: {
|
|
46
|
+
required_approving_review_count: requiredApprovingReviewCount,
|
|
47
|
+
require_code_owner_reviews: requireCodeOwnerReviews,
|
|
48
|
+
bypass_pull_request_allowances: bypassPullRequestAllowances,
|
|
49
|
+
dismiss_stale_reviews: dismissStaleReviews,
|
|
50
|
+
require_last_push_approval: requireLastPushApproval
|
|
51
|
+
},
|
|
52
|
+
required_conversation_resolution: requiredConversationResolution
|
|
53
|
+
});
|
|
54
|
+
if (requiredCommitSigning) {
|
|
55
|
+
await client.rest.repos.createCommitSignatureProtection({
|
|
56
|
+
owner,
|
|
57
|
+
repo: repoName,
|
|
58
|
+
branch: defaultBranch
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
} catch (e) {
|
|
62
|
+
errors.assertError(e);
|
|
63
|
+
if (e.message.includes(
|
|
64
|
+
"Upgrade to GitHub Pro or make this repository public to enable this feature"
|
|
65
|
+
)) {
|
|
66
|
+
logger.warn(
|
|
67
|
+
"Branch protection was not enabled as it requires GitHub Pro for private repositories"
|
|
68
|
+
);
|
|
69
|
+
} else {
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
try {
|
|
75
|
+
await tryOnce();
|
|
76
|
+
} catch (e) {
|
|
77
|
+
if (!e.message.includes("Branch not found")) {
|
|
78
|
+
throw e;
|
|
79
|
+
}
|
|
80
|
+
await new Promise((resolve) => setTimeout(resolve, 600));
|
|
81
|
+
await tryOnce();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
function entityRefToName(name) {
|
|
85
|
+
return name.replace(/^.*[:/]/g, "");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
exports.enableBranchProtectionOnDefaultRepoBranch = enableBranchProtectionOnDefaultRepoBranch;
|
|
89
|
+
exports.entityRefToName = entityRefToName;
|
|
90
|
+
//# sourceMappingURL=gitHelpers.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitHelpers.cjs.js","sources":["../../src/actions/gitHelpers.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assertError } from '@backstage/errors';\nimport { Octokit } from 'octokit';\nimport { LoggerService } from '@backstage/backend-plugin-api';\n\ntype BranchProtectionOptions = {\n client: Octokit;\n owner: string;\n repoName: string;\n logger: LoggerService;\n requireCodeOwnerReviews: boolean;\n requiredStatusCheckContexts?: string[];\n bypassPullRequestAllowances?: {\n users?: string[];\n teams?: string[];\n apps?: string[];\n };\n requiredApprovingReviewCount?: number;\n restrictions?: {\n users: string[];\n teams: string[];\n apps?: string[];\n };\n requireBranchesToBeUpToDate?: boolean;\n requiredConversationResolution?: boolean;\n requireLastPushApproval: boolean;\n defaultBranch?: string;\n enforceAdmins?: boolean;\n dismissStaleReviews?: boolean;\n requiredCommitSigning?: boolean;\n};\n\nexport const enableBranchProtectionOnDefaultRepoBranch = async ({\n repoName,\n client,\n owner,\n logger,\n requireCodeOwnerReviews,\n bypassPullRequestAllowances,\n requiredApprovingReviewCount,\n restrictions,\n requiredStatusCheckContexts = [],\n requireBranchesToBeUpToDate = true,\n requiredConversationResolution = false,\n requireLastPushApproval = false,\n defaultBranch = 'master',\n enforceAdmins = true,\n dismissStaleReviews = false,\n requiredCommitSigning = false,\n}: BranchProtectionOptions): Promise<void> => {\n const tryOnce = async () => {\n try {\n await client.rest.repos.updateBranchProtection({\n mediaType: {\n /**\n * 👇 we need this preview because allowing a custom\n * reviewer count on branch protection is a preview\n * feature\n *\n * More here: https://docs.github.com/en/rest/overview/api-previews#require-multiple-approving-reviews\n */\n previews: ['luke-cage-preview'],\n },\n owner,\n repo: repoName,\n branch: defaultBranch,\n required_status_checks: {\n strict: requireBranchesToBeUpToDate,\n contexts: requiredStatusCheckContexts,\n },\n restrictions: restrictions ?? null,\n enforce_admins: enforceAdmins,\n required_pull_request_reviews: {\n required_approving_review_count: requiredApprovingReviewCount,\n require_code_owner_reviews: requireCodeOwnerReviews,\n bypass_pull_request_allowances: bypassPullRequestAllowances,\n dismiss_stale_reviews: dismissStaleReviews,\n require_last_push_approval: requireLastPushApproval,\n },\n required_conversation_resolution: requiredConversationResolution,\n });\n\n if (requiredCommitSigning) {\n await client.rest.repos.createCommitSignatureProtection({\n owner,\n repo: repoName,\n branch: defaultBranch,\n });\n }\n } catch (e) {\n assertError(e);\n if (\n e.message.includes(\n 'Upgrade to GitHub Pro or make this repository public to enable this feature',\n )\n ) {\n logger.warn(\n 'Branch protection was not enabled as it requires GitHub Pro for private repositories',\n );\n } else {\n throw e;\n }\n }\n };\n\n try {\n await tryOnce();\n } catch (e) {\n if (!e.message.includes('Branch not found')) {\n throw e;\n }\n\n // GitHub has eventual consistency. Fail silently, wait, and try again.\n await new Promise(resolve => setTimeout(resolve, 600));\n await tryOnce();\n }\n};\n\nexport function entityRefToName(name: string): string {\n return name.replace(/^.*[:/]/g, '');\n}\n"],"names":["assertError"],"mappings":";;;;AA+CO,MAAM,4CAA4C,OAAO;AAAA,EAC9D,QAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,uBAAA;AAAA,EACA,2BAAA;AAAA,EACA,4BAAA;AAAA,EACA,YAAA;AAAA,EACA,8BAA8B,EAAC;AAAA,EAC/B,2BAA8B,GAAA,IAAA;AAAA,EAC9B,8BAAiC,GAAA,KAAA;AAAA,EACjC,uBAA0B,GAAA,KAAA;AAAA,EAC1B,aAAgB,GAAA,QAAA;AAAA,EAChB,aAAgB,GAAA,IAAA;AAAA,EAChB,mBAAsB,GAAA,KAAA;AAAA,EACtB,qBAAwB,GAAA,KAAA;AAC1B,CAA8C,KAAA;AAC5C,EAAA,MAAM,UAAU,YAAY;AAC1B,IAAI,IAAA;AACF,MAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,sBAAuB,CAAA;AAAA,QAC7C,SAAW,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQT,QAAA,EAAU,CAAC,mBAAmB,CAAA;AAAA,SAChC;AAAA,QACA,KAAA;AAAA,QACA,IAAM,EAAA,QAAA;AAAA,QACN,MAAQ,EAAA,aAAA;AAAA,QACR,sBAAwB,EAAA;AAAA,UACtB,MAAQ,EAAA,2BAAA;AAAA,UACR,QAAU,EAAA,2BAAA;AAAA,SACZ;AAAA,QACA,cAAc,YAAgB,IAAA,IAAA;AAAA,QAC9B,cAAgB,EAAA,aAAA;AAAA,QAChB,6BAA+B,EAAA;AAAA,UAC7B,+BAAiC,EAAA,4BAAA;AAAA,UACjC,0BAA4B,EAAA,uBAAA;AAAA,UAC5B,8BAAgC,EAAA,2BAAA;AAAA,UAChC,qBAAuB,EAAA,mBAAA;AAAA,UACvB,0BAA4B,EAAA,uBAAA;AAAA,SAC9B;AAAA,QACA,gCAAkC,EAAA,8BAAA;AAAA,OACnC,CAAA,CAAA;AAED,MAAA,IAAI,qBAAuB,EAAA;AACzB,QAAM,MAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,+BAAgC,CAAA;AAAA,UACtD,KAAA;AAAA,UACA,IAAM,EAAA,QAAA;AAAA,UACN,MAAQ,EAAA,aAAA;AAAA,SACT,CAAA,CAAA;AAAA,OACH;AAAA,aACO,CAAG,EAAA;AACV,MAAAA,kBAAA,CAAY,CAAC,CAAA,CAAA;AACb,MAAA,IACE,EAAE,OAAQ,CAAA,QAAA;AAAA,QACR,6EAAA;AAAA,OAEF,EAAA;AACA,QAAO,MAAA,CAAA,IAAA;AAAA,UACL,sFAAA;AAAA,SACF,CAAA;AAAA,OACK,MAAA;AACL,QAAM,MAAA,CAAA,CAAA;AAAA,OACR;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAI,IAAA;AACF,IAAA,MAAM,OAAQ,EAAA,CAAA;AAAA,WACP,CAAG,EAAA;AACV,IAAA,IAAI,CAAC,CAAA,CAAE,OAAQ,CAAA,QAAA,CAAS,kBAAkB,CAAG,EAAA;AAC3C,MAAM,MAAA,CAAA,CAAA;AAAA,KACR;AAGA,IAAA,MAAM,IAAI,OAAQ,CAAA,CAAA,OAAA,KAAW,UAAW,CAAA,OAAA,EAAS,GAAG,CAAC,CAAA,CAAA;AACrD,IAAA,MAAM,OAAQ,EAAA,CAAA;AAAA,GAChB;AACF,EAAA;AAEO,SAAS,gBAAgB,IAAsB,EAAA;AACpD,EAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,UAAA,EAAY,EAAE,CAAA,CAAA;AACpC;;;;;"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var yaml = require('yaml');
|
|
4
|
+
|
|
5
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
8
|
+
|
|
9
|
+
const examples = [
|
|
10
|
+
{
|
|
11
|
+
description: "Create a GitHub Environment (No Policies, No Variables, No Secrets)",
|
|
12
|
+
example: yaml__default.default.stringify({
|
|
13
|
+
steps: [
|
|
14
|
+
{
|
|
15
|
+
action: "github:environment:create",
|
|
16
|
+
name: "Create Environment",
|
|
17
|
+
input: {
|
|
18
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
19
|
+
name: "envname"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
})
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
description: "Create a GitHub Environment with Protected Branch Policy",
|
|
27
|
+
example: yaml__default.default.stringify({
|
|
28
|
+
steps: [
|
|
29
|
+
{
|
|
30
|
+
action: "github:environment:create",
|
|
31
|
+
name: "Create Environment",
|
|
32
|
+
input: {
|
|
33
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
34
|
+
name: "envname",
|
|
35
|
+
deploymentBranchPolicy: {
|
|
36
|
+
protected_branches: true,
|
|
37
|
+
custom_branch_policies: false
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
})
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
description: "Create a GitHub Environment with Custom Branch Policies",
|
|
46
|
+
example: yaml__default.default.stringify({
|
|
47
|
+
steps: [
|
|
48
|
+
{
|
|
49
|
+
action: "github:environment:create",
|
|
50
|
+
name: "Create Environment",
|
|
51
|
+
input: {
|
|
52
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
53
|
+
name: "envname",
|
|
54
|
+
deploymentBranchPolicy: {
|
|
55
|
+
protected_branches: false,
|
|
56
|
+
custom_branch_policies: true
|
|
57
|
+
},
|
|
58
|
+
customBranchPolicyNames: ["main", "*.*.*"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
})
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
description: "Create a GitHub Environment with Environment Variables and Secrets",
|
|
66
|
+
example: yaml__default.default.stringify({
|
|
67
|
+
steps: [
|
|
68
|
+
{
|
|
69
|
+
action: "github:environment:create",
|
|
70
|
+
name: "Create Environment",
|
|
71
|
+
input: {
|
|
72
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
73
|
+
name: "envname",
|
|
74
|
+
environmentVariables: {
|
|
75
|
+
key1: "val1",
|
|
76
|
+
key2: "val2"
|
|
77
|
+
},
|
|
78
|
+
secrets: {
|
|
79
|
+
secret1: "supersecret1",
|
|
80
|
+
secret2: "supersecret2"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
description: "Create a GitHub Environment with Custom Tag Policies",
|
|
89
|
+
example: yaml__default.default.stringify({
|
|
90
|
+
steps: [
|
|
91
|
+
{
|
|
92
|
+
action: "github:environment:create",
|
|
93
|
+
name: "Create Environment",
|
|
94
|
+
input: {
|
|
95
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
96
|
+
name: "envname",
|
|
97
|
+
customTagPolicyNames: ["release/*/*", "v*.*.*"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
description: "Create a GitHub Environment with Both Branch and Tag Policies",
|
|
105
|
+
example: yaml__default.default.stringify({
|
|
106
|
+
steps: [
|
|
107
|
+
{
|
|
108
|
+
action: "github:environment:create",
|
|
109
|
+
name: "Create Environment",
|
|
110
|
+
input: {
|
|
111
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
112
|
+
name: "envname",
|
|
113
|
+
deploymentBranchPolicy: {
|
|
114
|
+
protected_branches: false,
|
|
115
|
+
custom_branch_policies: true
|
|
116
|
+
},
|
|
117
|
+
customBranchPolicyNames: ["feature/*", "hotfix/*"],
|
|
118
|
+
customTagPolicyNames: ["release/*", "v*"]
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
})
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
description: "Create a GitHub Environment with Full Configuration",
|
|
126
|
+
example: yaml__default.default.stringify({
|
|
127
|
+
steps: [
|
|
128
|
+
{
|
|
129
|
+
action: "github:environment:create",
|
|
130
|
+
name: "Create Environment",
|
|
131
|
+
input: {
|
|
132
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
133
|
+
name: "envname",
|
|
134
|
+
deploymentBranchPolicy: {
|
|
135
|
+
protected_branches: false,
|
|
136
|
+
custom_branch_policies: true
|
|
137
|
+
},
|
|
138
|
+
customBranchPolicyNames: ["dev/*", "test/*"],
|
|
139
|
+
customTagPolicyNames: ["v1.*", "v2.*"],
|
|
140
|
+
environmentVariables: {
|
|
141
|
+
API_KEY: "123456789",
|
|
142
|
+
NODE_ENV: "production"
|
|
143
|
+
},
|
|
144
|
+
secrets: {
|
|
145
|
+
DATABASE_URL: "supersecretdatabaseurl",
|
|
146
|
+
API_SECRET: "supersecretapisecret"
|
|
147
|
+
},
|
|
148
|
+
token: "ghp_abcdef1234567890"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
})
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
description: "Create a GitHub Environment with Only Token Authentication",
|
|
156
|
+
example: yaml__default.default.stringify({
|
|
157
|
+
steps: [
|
|
158
|
+
{
|
|
159
|
+
action: "github:environment:create",
|
|
160
|
+
name: "Create Environment",
|
|
161
|
+
input: {
|
|
162
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
163
|
+
name: "envname",
|
|
164
|
+
token: "ghp_abcdef1234567890"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
})
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
description: "Create a GitHub Environment with No Deployment Policies",
|
|
172
|
+
example: yaml__default.default.stringify({
|
|
173
|
+
steps: [
|
|
174
|
+
{
|
|
175
|
+
action: "github:environment:create",
|
|
176
|
+
name: "Create Environment",
|
|
177
|
+
input: {
|
|
178
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
179
|
+
name: "envname",
|
|
180
|
+
deploymentBranchPolicy: null
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
})
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
description: "Create a GitHub Environment with Custom Branch and Tag Policies",
|
|
188
|
+
example: yaml__default.default.stringify({
|
|
189
|
+
steps: [
|
|
190
|
+
{
|
|
191
|
+
action: "github:environment:create",
|
|
192
|
+
name: "Create Environment",
|
|
193
|
+
input: {
|
|
194
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
195
|
+
name: "envname",
|
|
196
|
+
deploymentBranchPolicy: {
|
|
197
|
+
protected_branches: false,
|
|
198
|
+
custom_branch_policies: true
|
|
199
|
+
},
|
|
200
|
+
customBranchPolicyNames: ["release/*", "hotfix/*"],
|
|
201
|
+
customTagPolicyNames: ["v*", "release-*"]
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
})
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
description: "Create a GitHub Environment with Environment Variables Only",
|
|
209
|
+
example: yaml__default.default.stringify({
|
|
210
|
+
steps: [
|
|
211
|
+
{
|
|
212
|
+
action: "github:environment:create",
|
|
213
|
+
name: "Create Environment",
|
|
214
|
+
input: {
|
|
215
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
216
|
+
name: "envname",
|
|
217
|
+
environmentVariables: {
|
|
218
|
+
VAR1: "value1",
|
|
219
|
+
VAR2: "value2"
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
})
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
description: "Create a GitHub Environment with Deployment Secrets Only",
|
|
228
|
+
example: yaml__default.default.stringify({
|
|
229
|
+
steps: [
|
|
230
|
+
{
|
|
231
|
+
action: "github:environment:create",
|
|
232
|
+
name: "Create Environment",
|
|
233
|
+
input: {
|
|
234
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
235
|
+
name: "envname",
|
|
236
|
+
secrets: {
|
|
237
|
+
SECRET1: "secretvalue1",
|
|
238
|
+
SECRET2: "secretvalue2"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
})
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
description: "Create a GitHub Environment with Deployment Branch Policy and Token",
|
|
247
|
+
example: yaml__default.default.stringify({
|
|
248
|
+
steps: [
|
|
249
|
+
{
|
|
250
|
+
action: "github:environment:create",
|
|
251
|
+
name: "Create Environment",
|
|
252
|
+
input: {
|
|
253
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
254
|
+
name: "envname",
|
|
255
|
+
deploymentBranchPolicy: {
|
|
256
|
+
protected_branches: true,
|
|
257
|
+
custom_branch_policies: false
|
|
258
|
+
},
|
|
259
|
+
token: "ghp_abcdef1234567890"
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
})
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
description: "Create a GitHub Environment with Environment Variables, Secrets, and Token",
|
|
267
|
+
example: yaml__default.default.stringify({
|
|
268
|
+
steps: [
|
|
269
|
+
{
|
|
270
|
+
action: "github:environment:create",
|
|
271
|
+
name: "Create Environment",
|
|
272
|
+
input: {
|
|
273
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
274
|
+
name: "envname",
|
|
275
|
+
environmentVariables: {
|
|
276
|
+
VAR1: "value1",
|
|
277
|
+
VAR2: "value2"
|
|
278
|
+
},
|
|
279
|
+
secrets: {
|
|
280
|
+
SECRET1: "secretvalue1",
|
|
281
|
+
SECRET2: "secretvalue2"
|
|
282
|
+
},
|
|
283
|
+
token: "ghp_abcdef1234567890"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
})
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
description: "Create a GitHub Environment with Wait Timer",
|
|
291
|
+
example: yaml__default.default.stringify({
|
|
292
|
+
steps: [
|
|
293
|
+
{
|
|
294
|
+
action: "github:environment:create",
|
|
295
|
+
name: "Create Environment",
|
|
296
|
+
input: {
|
|
297
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
298
|
+
name: "envname",
|
|
299
|
+
waitTimer: 1e3
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
]
|
|
303
|
+
})
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
description: "Create a GitHub Environment with Prevent Self Review",
|
|
307
|
+
example: yaml__default.default.stringify({
|
|
308
|
+
steps: [
|
|
309
|
+
{
|
|
310
|
+
action: "github:environment:create",
|
|
311
|
+
name: "Create Environment",
|
|
312
|
+
input: {
|
|
313
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
314
|
+
name: "envname",
|
|
315
|
+
preventSelfReview: true
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
]
|
|
319
|
+
})
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
description: "Create a GitHub Environment with Reviewers",
|
|
323
|
+
example: yaml__default.default.stringify({
|
|
324
|
+
steps: [
|
|
325
|
+
{
|
|
326
|
+
action: "github:environment:create",
|
|
327
|
+
name: "Create Environment",
|
|
328
|
+
input: {
|
|
329
|
+
repoUrl: "github.com?repo=repository&owner=owner",
|
|
330
|
+
name: "envname",
|
|
331
|
+
reviewers: ["group:default/team-a", "user:default/johndoe"]
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
]
|
|
335
|
+
})
|
|
336
|
+
}
|
|
337
|
+
];
|
|
338
|
+
|
|
339
|
+
exports.examples = examples;
|
|
340
|
+
//# sourceMappingURL=gitHubEnvironment.examples.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitHubEnvironment.examples.cjs.js","sources":["../../src/actions/gitHubEnvironment.examples.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TemplateExample } from '@backstage/plugin-scaffolder-node';\nimport yaml from 'yaml';\n\nexport const examples: TemplateExample[] = [\n {\n description:\n 'Create a GitHub Environment (No Policies, No Variables, No Secrets)',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Protected Branch Policy',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: true,\n custom_branch_policies: false,\n },\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Custom Branch Policies',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: false,\n custom_branch_policies: true,\n },\n customBranchPolicyNames: ['main', '*.*.*'],\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitHub Environment with Environment Variables and Secrets',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n environmentVariables: {\n key1: 'val1',\n key2: 'val2',\n },\n secrets: {\n secret1: 'supersecret1',\n secret2: 'supersecret2',\n },\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Custom Tag Policies',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n customTagPolicyNames: ['release/*/*', 'v*.*.*'],\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitHub Environment with Both Branch and Tag Policies',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: false,\n custom_branch_policies: true,\n },\n customBranchPolicyNames: ['feature/*', 'hotfix/*'],\n customTagPolicyNames: ['release/*', 'v*'],\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Full Configuration',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: false,\n custom_branch_policies: true,\n },\n customBranchPolicyNames: ['dev/*', 'test/*'],\n customTagPolicyNames: ['v1.*', 'v2.*'],\n environmentVariables: {\n API_KEY: '123456789',\n NODE_ENV: 'production',\n },\n secrets: {\n DATABASE_URL: 'supersecretdatabaseurl',\n API_SECRET: 'supersecretapisecret',\n },\n token: 'ghp_abcdef1234567890',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Only Token Authentication',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n token: 'ghp_abcdef1234567890',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with No Deployment Policies',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: null,\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitHub Environment with Custom Branch and Tag Policies',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: false,\n custom_branch_policies: true,\n },\n customBranchPolicyNames: ['release/*', 'hotfix/*'],\n customTagPolicyNames: ['v*', 'release-*'],\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Environment Variables Only',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n environmentVariables: {\n VAR1: 'value1',\n VAR2: 'value2',\n },\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Deployment Secrets Only',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n secrets: {\n SECRET1: 'secretvalue1',\n SECRET2: 'secretvalue2',\n },\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitHub Environment with Deployment Branch Policy and Token',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n deploymentBranchPolicy: {\n protected_branches: true,\n custom_branch_policies: false,\n },\n token: 'ghp_abcdef1234567890',\n },\n },\n ],\n }),\n },\n {\n description:\n 'Create a GitHub Environment with Environment Variables, Secrets, and Token',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n environmentVariables: {\n VAR1: 'value1',\n VAR2: 'value2',\n },\n secrets: {\n SECRET1: 'secretvalue1',\n SECRET2: 'secretvalue2',\n },\n token: 'ghp_abcdef1234567890',\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Wait Timer',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n waitTimer: 1000,\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Prevent Self Review',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n preventSelfReview: true,\n },\n },\n ],\n }),\n },\n {\n description: 'Create a GitHub Environment with Reviewers',\n example: yaml.stringify({\n steps: [\n {\n action: 'github:environment:create',\n name: 'Create Environment',\n input: {\n repoUrl: 'github.com?repo=repository&owner=owner',\n name: 'envname',\n reviewers: ['group:default/team-a', 'user:default/johndoe'],\n },\n },\n ],\n }),\n },\n];\n"],"names":["yaml"],"mappings":"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"}
|