@backstage/plugin-scaffolder-backend 1.9.0-next.2 → 1.9.0

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 CHANGED
@@ -1,5 +1,84 @@
1
1
  # @backstage/plugin-scaffolder-backend
2
2
 
3
+ ## 1.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a20a0ea698: Added `requiredConversationResolution` template option to `github:repo:create`, `github:repo:push` and `publish:github`
8
+ - b32005e98a: Deprecated the `taskWorkers` option in RouterOptions in favor of `concurrentTasksLimit` which sets the limit of concurrent tasks in a single TaskWorker
9
+
10
+ TaskWorker can now run multiple (defaults to 10) tasks concurrently using the `concurrentTasksLimit` option available in both `RouterOptions` and `CreateWorkerOptions`.
11
+
12
+ To use the option to create a TaskWorker:
13
+
14
+ ```diff
15
+ const worker = await TaskWorker.create({
16
+ taskBroker,
17
+ actionRegistry,
18
+ integrations,
19
+ logger,
20
+ workingDirectory,
21
+ additionalTemplateFilters,
22
+ + concurrentTasksLimit: 10 // (1 to Infinity)
23
+ });
24
+ ```
25
+
26
+ - fc51bd8aa0: Add support for disabling Github repository wiki, issues and projects
27
+ - 0053d07bee: Update the `github:publish` action to allow passing wether to dismiss stale reviews on the protected default branch.
28
+
29
+ ### Patch Changes
30
+
31
+ - cb716004ef: Internal refactor to improve tests
32
+ - 935b66a646: Change step output template examples to use square bracket syntax.
33
+ - 884d749b14: Refactored to use `coreServices` from `@backstage/backend-plugin-api`.
34
+ - b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries
35
+ - 26404430bc: Use Json types from @backstage/types
36
+ - b07ccffad0: Backend now returns 'ui:options' value from template metadata, it can be used by all your custom scaffolder components.
37
+ - 309f2daca4: Updated dependency `esbuild` to `^0.16.0`.
38
+ - 3280711113: Updated dependency `msw` to `^0.49.0`.
39
+ - 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
40
+ - c3fa90e184: Updated dependency `zen-observable` to `^0.10.0`.
41
+ - Updated dependencies
42
+ - @backstage/plugin-catalog-backend@1.6.0
43
+ - @backstage/catalog-client@1.2.0
44
+ - @backstage/backend-common@0.17.0
45
+ - @backstage/plugin-catalog-node@1.3.0
46
+ - @backstage/backend-tasks@0.4.0
47
+ - @backstage/errors@1.1.4
48
+ - @backstage/backend-plugin-api@0.2.0
49
+ - @backstage/integration@1.4.1
50
+ - @backstage/plugin-auth-node@0.2.8
51
+ - @backstage/types@1.0.2
52
+ - @backstage/catalog-model@1.1.4
53
+ - @backstage/config@1.0.5
54
+ - @backstage/plugin-scaffolder-common@1.2.3
55
+
56
+ ## 1.9.0-next.3
57
+
58
+ ### Minor Changes
59
+
60
+ - 0053d07bee: Update the `github:publish` action to allow passing wether to dismiss stale reviews on the protected default branch.
61
+
62
+ ### Patch Changes
63
+
64
+ - 935b66a646: Change step output template examples to use square bracket syntax.
65
+ - b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries
66
+ - 309f2daca4: Updated dependency `esbuild` to `^0.16.0`.
67
+ - Updated dependencies
68
+ - @backstage/plugin-catalog-backend@1.6.0-next.3
69
+ - @backstage/backend-tasks@0.4.0-next.3
70
+ - @backstage/backend-common@0.17.0-next.3
71
+ - @backstage/backend-plugin-api@0.2.0-next.3
72
+ - @backstage/catalog-client@1.2.0-next.1
73
+ - @backstage/catalog-model@1.1.4-next.1
74
+ - @backstage/config@1.0.5-next.1
75
+ - @backstage/errors@1.1.4-next.1
76
+ - @backstage/integration@1.4.1-next.1
77
+ - @backstage/types@1.0.2-next.1
78
+ - @backstage/plugin-auth-node@0.2.8-next.3
79
+ - @backstage/plugin-catalog-node@1.3.0-next.3
80
+ - @backstage/plugin-scaffolder-common@1.2.3-next.1
81
+
3
82
  ## 1.9.0-next.2
4
83
 
5
84
  ### Minor Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder-backend",
3
- "version": "1.9.0-next.2",
3
+ "version": "1.9.0",
4
4
  "main": "../dist/index.cjs.js",
5
5
  "types": "../dist/index.alpha.d.ts"
6
6
  }
@@ -299,6 +299,7 @@ apps?: string[] | undefined;
299
299
  } | undefined;
300
300
  requiredStatusCheckContexts?: string[] | undefined;
301
301
  requireBranchesToBeUpToDate?: boolean | undefined;
302
+ requiredConversationResolution?: boolean | undefined;
302
303
  repoVisibility?: "internal" | "private" | "public" | undefined;
303
304
  collaborators?: ({
304
305
  user: string;
@@ -311,6 +312,9 @@ access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
311
312
  username: string;
312
313
  access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
313
314
  })[] | undefined;
315
+ hasProjects?: boolean | undefined;
316
+ hasWiki?: boolean | undefined;
317
+ hasIssues?: boolean | undefined;
314
318
  token?: string | undefined;
315
319
  topics?: string[] | undefined;
316
320
  }>;
@@ -335,6 +339,7 @@ gitCommitMessage?: string | undefined;
335
339
  gitAuthorName?: string | undefined;
336
340
  gitAuthorEmail?: string | undefined;
337
341
  requireCodeOwnerReviews?: boolean | undefined;
342
+ dismissStaleReviews?: boolean | undefined;
338
343
  bypassPullRequestAllowances?: {
339
344
  users?: string[];
340
345
  teams?: string[];
@@ -342,6 +347,7 @@ apps?: string[];
342
347
  } | undefined;
343
348
  requiredStatusCheckContexts?: string[] | undefined;
344
349
  requireBranchesToBeUpToDate?: boolean | undefined;
350
+ requiredConversationResolution?: boolean | undefined;
345
351
  sourcePath?: string | undefined;
346
352
  token?: string | undefined;
347
353
  }>;
@@ -508,8 +514,10 @@ teams?: string[];
508
514
  apps?: string[];
509
515
  } | undefined;
510
516
  requireCodeOwnerReviews?: boolean | undefined;
517
+ dismissStaleReviews?: boolean | undefined;
511
518
  requiredStatusCheckContexts?: string[] | undefined;
512
519
  requireBranchesToBeUpToDate?: boolean | undefined;
520
+ requiredConversationResolution?: boolean | undefined;
513
521
  repoVisibility?: "internal" | "private" | "public" | undefined;
514
522
  collaborators?: ({
515
523
  user: string;
@@ -522,6 +530,9 @@ access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
522
530
  username: string;
523
531
  access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
524
532
  })[] | undefined;
533
+ hasProjects?: boolean | undefined;
534
+ hasWiki?: boolean | undefined;
535
+ hasIssues?: boolean | undefined;
525
536
  token?: string | undefined;
526
537
  topics?: string[] | undefined;
527
538
  }>;
@@ -299,6 +299,7 @@ apps?: string[] | undefined;
299
299
  } | undefined;
300
300
  requiredStatusCheckContexts?: string[] | undefined;
301
301
  requireBranchesToBeUpToDate?: boolean | undefined;
302
+ requiredConversationResolution?: boolean | undefined;
302
303
  repoVisibility?: "internal" | "private" | "public" | undefined;
303
304
  collaborators?: ({
304
305
  user: string;
@@ -311,6 +312,9 @@ access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
311
312
  username: string;
312
313
  access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
313
314
  })[] | undefined;
315
+ hasProjects?: boolean | undefined;
316
+ hasWiki?: boolean | undefined;
317
+ hasIssues?: boolean | undefined;
314
318
  token?: string | undefined;
315
319
  topics?: string[] | undefined;
316
320
  }>;
@@ -335,6 +339,7 @@ gitCommitMessage?: string | undefined;
335
339
  gitAuthorName?: string | undefined;
336
340
  gitAuthorEmail?: string | undefined;
337
341
  requireCodeOwnerReviews?: boolean | undefined;
342
+ dismissStaleReviews?: boolean | undefined;
338
343
  bypassPullRequestAllowances?: {
339
344
  users?: string[];
340
345
  teams?: string[];
@@ -342,6 +347,7 @@ apps?: string[];
342
347
  } | undefined;
343
348
  requiredStatusCheckContexts?: string[] | undefined;
344
349
  requireBranchesToBeUpToDate?: boolean | undefined;
350
+ requiredConversationResolution?: boolean | undefined;
345
351
  sourcePath?: string | undefined;
346
352
  token?: string | undefined;
347
353
  }>;
@@ -508,8 +514,10 @@ teams?: string[];
508
514
  apps?: string[];
509
515
  } | undefined;
510
516
  requireCodeOwnerReviews?: boolean | undefined;
517
+ dismissStaleReviews?: boolean | undefined;
511
518
  requiredStatusCheckContexts?: string[] | undefined;
512
519
  requireBranchesToBeUpToDate?: boolean | undefined;
520
+ requiredConversationResolution?: boolean | undefined;
513
521
  repoVisibility?: "internal" | "private" | "public" | undefined;
514
522
  collaborators?: ({
515
523
  user: string;
@@ -522,6 +530,9 @@ access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
522
530
  username: string;
523
531
  access: 'pull' | 'push' | 'admin' | 'maintain' | 'triage';
524
532
  })[] | undefined;
533
+ hasProjects?: boolean | undefined;
534
+ hasWiki?: boolean | undefined;
535
+ hasIssues?: boolean | undefined;
525
536
  token?: string | undefined;
526
537
  topics?: string[] | undefined;
527
538
  }>;
package/dist/index.cjs.js CHANGED
@@ -998,8 +998,10 @@ const enableBranchProtectionOnDefaultRepoBranch = async ({
998
998
  bypassPullRequestAllowances,
999
999
  requiredStatusCheckContexts = [],
1000
1000
  requireBranchesToBeUpToDate = true,
1001
+ requiredConversationResolution = false,
1001
1002
  defaultBranch = "master",
1002
- enforceAdmins = true
1003
+ enforceAdmins = true,
1004
+ dismissStaleReviews = false
1003
1005
  }) => {
1004
1006
  const tryOnce = async () => {
1005
1007
  try {
@@ -1019,8 +1021,10 @@ const enableBranchProtectionOnDefaultRepoBranch = async ({
1019
1021
  required_pull_request_reviews: {
1020
1022
  required_approving_review_count: 1,
1021
1023
  require_code_owner_reviews: requireCodeOwnerReviews,
1022
- bypass_pull_request_allowances: bypassPullRequestAllowances
1023
- }
1024
+ bypass_pull_request_allowances: bypassPullRequestAllowances,
1025
+ dismiss_stale_reviews: dismissStaleReviews
1026
+ },
1027
+ required_conversation_resolution: requiredConversationResolution
1024
1028
  });
1025
1029
  } catch (e) {
1026
1030
  errors.assertError(e);
@@ -1086,7 +1090,7 @@ async function getOctokitOptions(options) {
1086
1090
  previews: ["nebula-preview"]
1087
1091
  };
1088
1092
  }
1089
- async function createGithubRepoWithCollaboratorsAndTopics(client, repo, owner, repoVisibility, description, homepage, deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, allowRebaseMerge, allowAutoMerge, access, collaborators, topics, logger) {
1093
+ async function createGithubRepoWithCollaboratorsAndTopics(client, repo, owner, repoVisibility, description, homepage, deleteBranchOnMerge, allowMergeCommit, allowSquashMerge, allowRebaseMerge, allowAutoMerge, access, collaborators, hasProjects, hasWiki, hasIssues, topics, logger) {
1090
1094
  const user = await client.rest.users.getByUsername({
1091
1095
  username: owner
1092
1096
  });
@@ -1101,7 +1105,10 @@ async function createGithubRepoWithCollaboratorsAndTopics(client, repo, owner, r
1101
1105
  allow_squash_merge: allowSquashMerge,
1102
1106
  allow_rebase_merge: allowRebaseMerge,
1103
1107
  allow_auto_merge: allowAutoMerge,
1104
- homepage
1108
+ homepage,
1109
+ has_projects: hasProjects,
1110
+ has_wiki: hasWiki,
1111
+ has_issues: hasIssues
1105
1112
  }) : client.rest.repos.createForAuthenticatedUser({
1106
1113
  name: repo,
1107
1114
  private: repoVisibility === "private",
@@ -1111,7 +1118,10 @@ async function createGithubRepoWithCollaboratorsAndTopics(client, repo, owner, r
1111
1118
  allow_squash_merge: allowSquashMerge,
1112
1119
  allow_rebase_merge: allowRebaseMerge,
1113
1120
  allow_auto_merge: allowAutoMerge,
1114
- homepage
1121
+ homepage,
1122
+ has_projects: hasProjects,
1123
+ has_wiki: hasWiki,
1124
+ has_issues: hasIssues
1115
1125
  });
1116
1126
  let newRepo;
1117
1127
  try {
@@ -1186,7 +1196,7 @@ async function createGithubRepoWithCollaboratorsAndTopics(client, repo, owner, r
1186
1196
  }
1187
1197
  return newRepo;
1188
1198
  }
1189
- async function initRepoPushAndProtect(remoteUrl, password, workspacePath, sourcePath, defaultBranch, protectDefaultBranch, protectEnforceAdmins, owner, client, repo, requireCodeOwnerReviews, bypassPullRequestAllowances, requiredStatusCheckContexts, requireBranchesToBeUpToDate, config, logger, gitCommitMessage, gitAuthorName, gitAuthorEmail) {
1199
+ async function initRepoPushAndProtect(remoteUrl, password, workspacePath, sourcePath, defaultBranch, protectDefaultBranch, protectEnforceAdmins, owner, client, repo, requireCodeOwnerReviews, bypassPullRequestAllowances, requiredStatusCheckContexts, requireBranchesToBeUpToDate, requiredConversationResolution, config, logger, gitCommitMessage, gitAuthorName, gitAuthorEmail, dismissStaleReviews) {
1190
1200
  const gitAuthorInfo = {
1191
1201
  name: gitAuthorName ? gitAuthorName : config.getOptionalString("scaffolder.defaultAuthor.name"),
1192
1202
  email: gitAuthorEmail ? gitAuthorEmail : config.getOptionalString("scaffolder.defaultAuthor.email")
@@ -1216,7 +1226,9 @@ async function initRepoPushAndProtect(remoteUrl, password, workspacePath, source
1216
1226
  requireCodeOwnerReviews,
1217
1227
  requiredStatusCheckContexts,
1218
1228
  requireBranchesToBeUpToDate,
1219
- enforceAdmins: protectEnforceAdmins
1229
+ requiredConversationResolution,
1230
+ enforceAdmins: protectEnforceAdmins,
1231
+ dismissStaleReviews
1220
1232
  });
1221
1233
  } catch (e) {
1222
1234
  errors.assertError(e);
@@ -1398,6 +1410,11 @@ const requireCodeOwnerReviews = {
1398
1410
  description: "Require an approved review in PR including files with a designated Code Owner",
1399
1411
  type: "boolean"
1400
1412
  };
1413
+ const dismissStaleReviews = {
1414
+ title: "Dismiss Stale Reviews",
1415
+ description: "New reviewable commits pushed to a matching branch will dismiss pull request review approvals.",
1416
+ type: "boolean"
1417
+ };
1401
1418
  const requiredStatusCheckContexts = {
1402
1419
  title: "Required Status Check Contexts",
1403
1420
  description: "The list of status checks to require in order to merge into this branch",
@@ -1411,6 +1428,11 @@ const requireBranchesToBeUpToDate = {
1411
1428
  description: `Require branches to be up to date before merging. The default value is 'true'`,
1412
1429
  type: "boolean"
1413
1430
  };
1431
+ const requiredConversationResolution = {
1432
+ title: "Required Conversation Resolution",
1433
+ description: "Requires all conversations on code to be resolved before a pull request can be merged into this branch",
1434
+ type: "boolean"
1435
+ };
1414
1436
  const repoVisibility = {
1415
1437
  title: "Repository Visibility",
1416
1438
  type: "string",
@@ -1477,6 +1499,21 @@ const collaborators = {
1477
1499
  oneOf: [{ required: ["user"] }, { required: ["team"] }]
1478
1500
  }
1479
1501
  };
1502
+ const hasProjects = {
1503
+ title: "Enable projects",
1504
+ type: "boolean",
1505
+ description: `Enable projects for the repository. The default value is 'true' unless the organization has disabled repository projects`
1506
+ };
1507
+ const hasWiki = {
1508
+ title: "Enable the wiki",
1509
+ type: "boolean",
1510
+ description: `Enable the wiki for the repository. The default value is 'true'`
1511
+ };
1512
+ const hasIssues = {
1513
+ title: "Enable issues",
1514
+ type: "boolean",
1515
+ description: `Enable issues for the repository. The default value is 'true'`
1516
+ };
1480
1517
  const token = {
1481
1518
  title: "Authentication Token",
1482
1519
  type: "string",
@@ -1568,6 +1605,7 @@ function createGithubRepoCreateAction(options) {
1568
1605
  bypassPullRequestAllowances: bypassPullRequestAllowances,
1569
1606
  requiredStatusCheckContexts: requiredStatusCheckContexts,
1570
1607
  requireBranchesToBeUpToDate: requireBranchesToBeUpToDate,
1608
+ requiredConversationResolution: requiredConversationResolution,
1571
1609
  repoVisibility: repoVisibility,
1572
1610
  deleteBranchOnMerge: deleteBranchOnMerge,
1573
1611
  allowMergeCommit: allowMergeCommit,
@@ -1575,6 +1613,9 @@ function createGithubRepoCreateAction(options) {
1575
1613
  allowRebaseMerge: allowRebaseMerge,
1576
1614
  allowAutoMerge: allowAutoMerge,
1577
1615
  collaborators: collaborators,
1616
+ hasProjects: hasProjects,
1617
+ hasWiki: hasWiki,
1618
+ hasIssues: hasIssues,
1578
1619
  token: token,
1579
1620
  topics: topics
1580
1621
  }
@@ -1600,6 +1641,9 @@ function createGithubRepoCreateAction(options) {
1600
1641
  allowRebaseMerge = true,
1601
1642
  allowAutoMerge = false,
1602
1643
  collaborators,
1644
+ hasProjects = void 0,
1645
+ hasWiki = void 0,
1646
+ hasIssues = void 0,
1603
1647
  topics,
1604
1648
  token: providedToken
1605
1649
  } = ctx.input;
@@ -1628,6 +1672,9 @@ function createGithubRepoCreateAction(options) {
1628
1672
  allowAutoMerge,
1629
1673
  access,
1630
1674
  collaborators,
1675
+ hasProjects,
1676
+ hasWiki,
1677
+ hasIssues,
1631
1678
  topics,
1632
1679
  ctx.logger
1633
1680
  );
@@ -1648,9 +1695,11 @@ function createGithubRepoPushAction(options) {
1648
1695
  properties: {
1649
1696
  repoUrl: repoUrl,
1650
1697
  requireCodeOwnerReviews: requireCodeOwnerReviews,
1698
+ dismissStaleReviews: dismissStaleReviews,
1651
1699
  requiredStatusCheckContexts: requiredStatusCheckContexts,
1652
1700
  bypassPullRequestAllowances: bypassPullRequestAllowances,
1653
1701
  requireBranchesToBeUpToDate: requireBranchesToBeUpToDate,
1702
+ requiredConversationResolution: requiredConversationResolution,
1654
1703
  defaultBranch: defaultBranch,
1655
1704
  protectDefaultBranch: protectDefaultBranch,
1656
1705
  protectEnforceAdmins: protectEnforceAdmins,
@@ -1679,9 +1728,11 @@ function createGithubRepoPushAction(options) {
1679
1728
  gitAuthorName,
1680
1729
  gitAuthorEmail,
1681
1730
  requireCodeOwnerReviews = false,
1731
+ dismissStaleReviews = false,
1682
1732
  bypassPullRequestAllowances,
1683
1733
  requiredStatusCheckContexts = [],
1684
1734
  requireBranchesToBeUpToDate = true,
1735
+ requiredConversationResolution = false,
1685
1736
  token: providedToken
1686
1737
  } = ctx.input;
1687
1738
  const { owner, repo } = parseRepoUrl(repoUrl, integrations);
@@ -1713,11 +1764,13 @@ function createGithubRepoPushAction(options) {
1713
1764
  bypassPullRequestAllowances,
1714
1765
  requiredStatusCheckContexts,
1715
1766
  requireBranchesToBeUpToDate,
1767
+ requiredConversationResolution,
1716
1768
  config,
1717
1769
  ctx.logger,
1718
1770
  gitCommitMessage,
1719
1771
  gitAuthorName,
1720
- gitAuthorEmail
1772
+ gitAuthorEmail,
1773
+ dismissStaleReviews
1721
1774
  );
1722
1775
  ctx.output("remoteUrl", remoteUrl);
1723
1776
  ctx.output("repoContentsUrl", repoContentsUrl);
@@ -2931,8 +2984,10 @@ function createPublishGithubAction(options) {
2931
2984
  access: access,
2932
2985
  bypassPullRequestAllowances: bypassPullRequestAllowances,
2933
2986
  requireCodeOwnerReviews: requireCodeOwnerReviews,
2987
+ dismissStaleReviews: dismissStaleReviews,
2934
2988
  requiredStatusCheckContexts: requiredStatusCheckContexts,
2935
2989
  requireBranchesToBeUpToDate: requireBranchesToBeUpToDate,
2990
+ requiredConversationResolution: requiredConversationResolution,
2936
2991
  repoVisibility: repoVisibility,
2937
2992
  defaultBranch: defaultBranch,
2938
2993
  protectDefaultBranch: protectDefaultBranch,
@@ -2947,6 +3002,9 @@ function createPublishGithubAction(options) {
2947
3002
  allowAutoMerge: allowAutoMerge,
2948
3003
  sourcePath: sourcePath,
2949
3004
  collaborators: collaborators,
3005
+ hasProjects: hasProjects,
3006
+ hasWiki: hasWiki,
3007
+ hasIssues: hasIssues,
2950
3008
  token: token,
2951
3009
  topics: topics
2952
3010
  }
@@ -2966,9 +3024,11 @@ function createPublishGithubAction(options) {
2966
3024
  homepage,
2967
3025
  access,
2968
3026
  requireCodeOwnerReviews = false,
3027
+ dismissStaleReviews = false,
2969
3028
  bypassPullRequestAllowances,
2970
3029
  requiredStatusCheckContexts = [],
2971
3030
  requireBranchesToBeUpToDate = true,
3031
+ requiredConversationResolution = false,
2972
3032
  repoVisibility = "private",
2973
3033
  defaultBranch = "master",
2974
3034
  protectDefaultBranch = true,
@@ -2982,6 +3042,9 @@ function createPublishGithubAction(options) {
2982
3042
  allowRebaseMerge = true,
2983
3043
  allowAutoMerge = false,
2984
3044
  collaborators,
3045
+ hasProjects = void 0,
3046
+ hasWiki = void 0,
3047
+ hasIssues = void 0,
2985
3048
  topics,
2986
3049
  token: providedToken
2987
3050
  } = ctx.input;
@@ -3010,6 +3073,9 @@ function createPublishGithubAction(options) {
3010
3073
  allowAutoMerge,
3011
3074
  access,
3012
3075
  collaborators,
3076
+ hasProjects,
3077
+ hasWiki,
3078
+ hasIssues,
3013
3079
  topics,
3014
3080
  ctx.logger
3015
3081
  );
@@ -3030,11 +3096,13 @@ function createPublishGithubAction(options) {
3030
3096
  bypassPullRequestAllowances,
3031
3097
  requiredStatusCheckContexts,
3032
3098
  requireBranchesToBeUpToDate,
3099
+ requiredConversationResolution,
3033
3100
  config,
3034
3101
  ctx.logger,
3035
3102
  gitCommitMessage,
3036
3103
  gitAuthorName,
3037
- gitAuthorEmail
3104
+ gitAuthorEmail,
3105
+ dismissStaleReviews
3038
3106
  );
3039
3107
  ctx.output("remoteUrl", remoteUrl);
3040
3108
  ctx.output("repoContentsUrl", repoContentsUrl);
@@ -4937,6 +5005,7 @@ async function createRouter(options) {
4937
5005
  res.json({
4938
5006
  title: (_b = template.metadata.title) != null ? _b : template.metadata.name,
4939
5007
  description: template.metadata.description,
5008
+ "ui:options": template.metadata["ui:options"],
4940
5009
  steps: parameters.map((schema) => {
4941
5010
  var _a2;
4942
5011
  return {