@backstage/plugin-scaffolder-backend-module-github 0.5.1-next.0 → 0.5.1-next.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/actions/gitHelpers.cjs.js +90 -0
  3. package/dist/actions/gitHelpers.cjs.js.map +1 -0
  4. package/dist/actions/gitHubEnvironment.examples.cjs.js +340 -0
  5. package/dist/actions/gitHubEnvironment.examples.cjs.js.map +1 -0
  6. package/dist/actions/github.cjs.js +187 -0
  7. package/dist/actions/github.cjs.js.map +1 -0
  8. package/dist/actions/github.examples.cjs.js +60 -0
  9. package/dist/actions/github.examples.cjs.js.map +1 -0
  10. package/dist/actions/githubActionsDispatch.cjs.js +84 -0
  11. package/dist/actions/githubActionsDispatch.cjs.js.map +1 -0
  12. package/dist/actions/githubActionsDispatch.examples.cjs.js +66 -0
  13. package/dist/actions/githubActionsDispatch.examples.cjs.js.map +1 -0
  14. package/dist/actions/githubAutolinks.cjs.js +76 -0
  15. package/dist/actions/githubAutolinks.cjs.js.map +1 -0
  16. package/dist/actions/githubAutolinks.examples.cjs.js +30 -0
  17. package/dist/actions/githubAutolinks.examples.cjs.js.map +1 -0
  18. package/dist/actions/githubBranchProtection.cjs.js +97 -0
  19. package/dist/actions/githubBranchProtection.cjs.js.map +1 -0
  20. package/dist/actions/githubBranchProtection.examples.cjs.js +62 -0
  21. package/dist/actions/githubBranchProtection.examples.cjs.js.map +1 -0
  22. package/dist/actions/githubDeployKey.cjs.js +123 -0
  23. package/dist/actions/githubDeployKey.cjs.js.map +1 -0
  24. package/dist/actions/githubDeployKey.examples.cjs.js +30 -0
  25. package/dist/actions/githubDeployKey.examples.cjs.js.map +1 -0
  26. package/dist/actions/githubEnvironment.cjs.js +255 -0
  27. package/dist/actions/githubEnvironment.cjs.js.map +1 -0
  28. package/dist/actions/githubIssuesLabel.cjs.js +79 -0
  29. package/dist/actions/githubIssuesLabel.cjs.js.map +1 -0
  30. package/dist/actions/githubIssuesLabel.examples.cjs.js +46 -0
  31. package/dist/actions/githubIssuesLabel.examples.cjs.js.map +1 -0
  32. package/dist/actions/githubPagesEnable.cjs.js +88 -0
  33. package/dist/actions/githubPagesEnable.cjs.js.map +1 -0
  34. package/dist/actions/githubPagesEnable.examples.cjs.js +224 -0
  35. package/dist/actions/githubPagesEnable.examples.cjs.js.map +1 -0
  36. package/dist/actions/githubPullRequest.cjs.js +336 -0
  37. package/dist/actions/githubPullRequest.cjs.js.map +1 -0
  38. package/dist/actions/githubPullRequest.examples.cjs.js +260 -0
  39. package/dist/actions/githubPullRequest.examples.cjs.js.map +1 -0
  40. package/dist/actions/githubRepoCreate.cjs.js +130 -0
  41. package/dist/actions/githubRepoCreate.cjs.js.map +1 -0
  42. package/dist/actions/githubRepoCreate.examples.cjs.js +964 -0
  43. package/dist/actions/githubRepoCreate.examples.cjs.js.map +1 -0
  44. package/dist/actions/githubRepoPush.cjs.js +122 -0
  45. package/dist/actions/githubRepoPush.cjs.js.map +1 -0
  46. package/dist/actions/githubRepoPush.examples.cjs.js +57 -0
  47. package/dist/actions/githubRepoPush.examples.cjs.js.map +1 -0
  48. package/dist/actions/githubWebhook.cjs.js +135 -0
  49. package/dist/actions/githubWebhook.cjs.js.map +1 -0
  50. package/dist/actions/githubWebhook.examples.cjs.js +113 -0
  51. package/dist/actions/githubWebhook.examples.cjs.js.map +1 -0
  52. package/dist/actions/helpers.cjs.js +292 -0
  53. package/dist/actions/helpers.cjs.js.map +1 -0
  54. package/dist/actions/inputProperties.cjs.js +319 -0
  55. package/dist/actions/inputProperties.cjs.js.map +1 -0
  56. package/dist/actions/outputProperties.cjs.js +19 -0
  57. package/dist/actions/outputProperties.cjs.js.map +1 -0
  58. package/dist/index.cjs.js +31 -4306
  59. package/dist/index.cjs.js.map +1 -1
  60. package/dist/index.d.ts +33 -1
  61. package/dist/module.cjs.js +92 -0
  62. package/dist/module.cjs.js.map +1 -0
  63. package/package.json +11 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # @backstage/plugin-scaffolder-backend-module-github
2
2
 
3
+ ## 0.5.1-next.2
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
+ - Updated dependencies
25
+ - @backstage/integration@1.15.1-next.1
26
+ - @backstage/catalog-client@1.7.1-next.0
27
+ - @backstage/plugin-scaffolder-node@0.5.0-next.2
28
+ - @backstage/backend-plugin-api@1.0.1-next.1
29
+ - @backstage/catalog-model@1.7.0
30
+ - @backstage/config@1.2.0
31
+ - @backstage/errors@1.2.4
32
+
33
+ ## 0.5.1-next.1
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies
38
+ - @backstage/integration@1.15.1-next.0
39
+ - @backstage/backend-plugin-api@1.0.1-next.0
40
+ - @backstage/catalog-client@1.7.0
41
+ - @backstage/catalog-model@1.7.0
42
+ - @backstage/config@1.2.0
43
+ - @backstage/errors@1.2.4
44
+ - @backstage/plugin-scaffolder-node@0.5.0-next.1
45
+
3
46
  ## 0.5.1-next.0
4
47
 
5
48
  ### 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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"}