From bb7088be429f4c466133feb551957105c3d7af32 Mon Sep 17 00:00:00 2001 From: Phred Date: Fri, 2 Jan 2026 12:09:19 -0600 Subject: [PATCH 1/3] feat: support setting workflow access level during repo creation Signed-off-by: Phred --- .changeset/quick-cars-poke.md | 19 + .../actions/githubRepoCreate.examples.test.ts | 414 ++---------------- .../src/actions/githubRepoCreate.examples.ts | 15 + .../src/actions/githubRepoCreate.test.ts | 101 ++--- .../src/actions/githubRepoCreate.ts | 38 +- .../src/actions/helpers.ts | 9 + .../src/actions/inputProperties.ts | 79 ++-- .../src/actions/outputProperties.ts | 4 +- 8 files changed, 149 insertions(+), 530 deletions(-) create mode 100644 .changeset/quick-cars-poke.md diff --git a/.changeset/quick-cars-poke.md b/.changeset/quick-cars-poke.md new file mode 100644 index 0000000000..a7338d8363 --- /dev/null +++ b/.changeset/quick-cars-poke.md @@ -0,0 +1,19 @@ +--- +'@backstage/plugin-scaffolder-backend-module-github': patch +--- + +Added options to set [workflow access level][access-level] for repositories to `github:repo:create` + +This is useful when creating repositories for GitHub Actions to manage access +to the workflows during creation. + +```diff + - action: github:repo:create + id: create-repo + input: + repoUrl: github.com?owner=owner&repo=repo + visibility: private ++ workflowAccess: organization +``` + +[access-level]: https://docs.github.com/en/rest/actions/permissions?apiVersion=2022-11-28#set-the-level-of-access-for-workflows-outside-of-the-repository diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.test.ts index c37e9c222b..e2104736f7 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.test.ts @@ -56,6 +56,7 @@ const mockOctokit = { createRepoVariable: jest.fn(), createOrUpdateRepoSecret: jest.fn(), getRepoPublicKey: jest.fn(), + setWorkflowAccessToRepository: jest.fn(), }, }, request: jest.fn().mockResolvedValue({}), @@ -130,13 +131,7 @@ describe('github:repo:create examples', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'private', - auto_init: undefined, }); }); @@ -165,12 +160,7 @@ describe('github:repo:create examples', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'private', - auto_init: undefined, }); }); @@ -190,7 +180,6 @@ describe('github:repo:create examples', () => { name: 'repo', org: 'owner', private: true, - description: undefined, delete_branch_on_merge: false, allow_squash_merge: true, squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', @@ -199,13 +188,9 @@ describe('github:repo:create examples', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, visibility: 'private', has_issues: false, // disable issues - has_projects: undefined, has_wiki: false, // disable wiki - homepage: undefined, - auto_init: undefined, }); }); @@ -239,17 +224,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, homepage: 'https://example.com', - auto_init: undefined, }); }); @@ -283,17 +262,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -327,17 +299,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -371,17 +336,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -415,17 +373,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: false, allow_rebase_merge: false, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -459,17 +410,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'pull_request_title', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -503,17 +447,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'blank', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -547,17 +484,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: true, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -591,17 +521,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -635,17 +558,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -679,17 +595,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -723,17 +632,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -767,17 +669,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -811,17 +706,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -855,17 +743,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -899,17 +780,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -943,17 +817,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -987,17 +854,12 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'internal', - has_issues: undefined, description: 'A repository for project XYZ', - has_projects: undefined, - has_wiki: undefined, homepage: 'https://project-xyz.com', - auto_init: undefined, }); }); @@ -1031,17 +893,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1075,17 +930,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1119,17 +967,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, has_projects: true, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1163,17 +1005,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: false, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1207,17 +1042,12 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'internal', has_issues: false, - description: undefined, has_projects: false, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1251,17 +1081,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1295,17 +1118,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1339,17 +1155,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, description: 'Repository for project ABC', - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1383,17 +1193,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'public', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1427,17 +1230,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1471,17 +1267,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1515,17 +1304,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1559,17 +1341,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1603,17 +1378,12 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'internal', - has_issues: undefined, description: 'Internal repository for team collaboration', - has_projects: undefined, - has_wiki: undefined, homepage: 'https://internal.example.com', - auto_init: undefined, }); }); @@ -1647,17 +1417,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1691,17 +1454,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, has_projects: true, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1735,17 +1492,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1779,17 +1529,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1823,17 +1566,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'internal', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1867,17 +1603,12 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, description: 'Repository for web application project', - has_projects: undefined, - has_wiki: undefined, homepage: 'https://webapp.example.com', - auto_init: undefined, }); }); @@ -1911,17 +1642,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'pull_request_description', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: false, allow_rebase_merge: false, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1955,17 +1679,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: false, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -1999,17 +1716,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2043,17 +1753,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2087,17 +1790,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'public', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2131,17 +1827,13 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', has_issues: false, description: 'Repository for backend service', - has_projects: undefined, has_wiki: false, - homepage: undefined, - auto_init: undefined, }); }); @@ -2175,17 +1867,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2219,17 +1904,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2263,17 +1941,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2307,17 +1978,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: false, allow_rebase_merge: true, allow_auto_merge: true, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2351,17 +2015,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, homepage: 'https://example.com', - auto_init: undefined, }); }); @@ -2395,17 +2053,11 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, description: 'Repository for microservice development', - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2439,17 +2091,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2483,17 +2128,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2527,17 +2165,10 @@ describe('github:repo:create examples', () => { squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_update_branch: false, - custom_properties: undefined, allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2569,19 +2200,12 @@ describe('github:repo:create examples', () => { delete_branch_on_merge: false, allow_squash_merge: true, allow_update_branch: false, - custom_properties: undefined, squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); }); @@ -2613,19 +2237,43 @@ describe('github:repo:create examples', () => { delete_branch_on_merge: false, allow_squash_merge: true, allow_update_branch: false, - custom_properties: undefined, squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', squash_merge_commit_message: 'COMMIT_MESSAGES', allow_merge_commit: true, allow_rebase_merge: true, allow_auto_merge: false, visibility: 'private', - has_issues: undefined, - description: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, auto_init: true, }); }); + + it(`Should ${examples[59].description}`, async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'Organization' }, + }); + + mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} }); + + let input; + try { + input = yaml.parse(examples[59].example).steps[0].input; + } catch (error) { + console.error('Failed to parse YAML:', error); + } + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + ...input, + }, + }); + + expect( + mockOctokit.rest.actions.setWorkflowAccessToRepository, + ).toHaveBeenCalledWith({ + access_level: input.workflowAccess, + owner: 'owner', + repo: 'repo', + }); + }); }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.ts b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.ts index 41c6a15fba..698a85779e 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.examples.ts @@ -1021,4 +1021,19 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Allow workflow access for organization.', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:create', + name: 'Create a new GitHub repository that allows org-wide access to its workflows', + input: { + repoUrl: 'github.com?owner=owner&repo=repo', + workflowAccess: 'organization', + }, + }, + ], + }), + }, ]; diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.test.ts b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.test.ts index adad5237da..56159e207a 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.test.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.test.ts @@ -57,6 +57,7 @@ const mockOctokit = { createRepoVariable: jest.fn(), createOrUpdateRepoSecret: jest.fn(), getRepoPublicKey: jest.fn(), + setWorkflowAccessToRepository: jest.fn(), }, activity: { setRepoSubscription: jest.fn(), @@ -152,12 +153,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'private', - auto_init: undefined, }); await action.handler({ @@ -180,13 +176,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'public', - auto_init: undefined, }); await action.handler({ @@ -210,11 +200,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, visibility: 'private', - auto_init: undefined, }); await action.handler({ @@ -239,13 +225,8 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, visibility: 'private', - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, homepage: 'https://example.com', - auto_init: undefined, }); await action.handler({ @@ -270,12 +251,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, visibility: 'private', - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, - auto_init: undefined, }); await action.handler({ @@ -302,13 +278,8 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, homepage: 'https://example.com', visibility: 'private', - auto_init: undefined, }); await action.handler({ @@ -332,11 +303,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'private', auto_init: true, }); @@ -362,11 +328,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - custom_properties: undefined, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, visibility: 'private', auto_init: false, }); @@ -396,11 +357,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); await action.handler({ @@ -424,11 +380,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - homepage: undefined, - auto_init: undefined, }); await action.handler({ @@ -453,10 +404,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, - auto_init: undefined, }); await action.handler({ @@ -482,11 +429,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, homepage: 'https://example.com', - auto_init: undefined, }); await action.handler({ @@ -512,11 +455,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, homepage: 'https://example.com', - auto_init: undefined, }); // Custom properties on user repos should be ignored @@ -545,11 +484,7 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_issues: undefined, - has_projects: undefined, - has_wiki: undefined, homepage: 'https://example.com', - auto_init: undefined, }); await action.handler({ @@ -573,10 +508,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, - homepage: undefined, auto_init: true, }); @@ -601,10 +532,6 @@ describe('github:repo:create', () => { allow_rebase_merge: true, allow_auto_merge: false, allow_update_branch: false, - has_wiki: undefined, - has_projects: undefined, - has_issues: undefined, - homepage: undefined, auto_init: false, }); }); @@ -966,4 +893,30 @@ describe('github:repo:create', () => { ignored: false, }); }); + + it.each(['none', 'organization', 'user'])( + 'should set workflow access level - %s', + async expected => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'Organization' }, + }); + mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} }); + + await action.handler({ + ...mockContext, + input: { + ...mockContext.input, + workflowAccess: expected, + }, + }); + + expect( + mockOctokit.rest.actions.setWorkflowAccessToRepository, + ).toHaveBeenCalledWith({ + access_level: expected, + owner: 'owner', + repo: 'repo', + }); + }, + ); }); diff --git a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.ts b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.ts index 952bf514d4..6278d2537e 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/githubRepoCreate.ts @@ -47,41 +47,7 @@ export function createGithubRepoCreateAction(options: { examples, schema: { input: { - repoUrl: inputProps.repoUrl, - description: inputProps.description, - homepage: inputProps.homepage, - access: inputProps.access, - requireCodeOwnerReviews: inputProps.requireCodeOwnerReviews, - bypassPullRequestAllowances: inputProps.bypassPullRequestAllowances, - requiredApprovingReviewCount: inputProps.requiredApprovingReviewCount, - restrictions: inputProps.restrictions, - requiredStatusCheckContexts: inputProps.requiredStatusCheckContexts, - requireBranchesToBeUpToDate: inputProps.requireBranchesToBeUpToDate, - requiredConversationResolution: - inputProps.requiredConversationResolution, - repoVisibility: inputProps.repoVisibility, - deleteBranchOnMerge: inputProps.deleteBranchOnMerge, - allowMergeCommit: inputProps.allowMergeCommit, - allowSquashMerge: inputProps.allowSquashMerge, - squashMergeCommitTitle: inputProps.squashMergeCommitTitle, - squashMergeCommitMessage: inputProps.squashMergeCommitMessage, - allowRebaseMerge: inputProps.allowRebaseMerge, - allowAutoMerge: inputProps.allowAutoMerge, - allowUpdateBranch: inputProps.allowUpdateBranch, - collaborators: inputProps.collaborators, - hasProjects: inputProps.hasProjects, - hasWiki: inputProps.hasWiki, - hasIssues: inputProps.hasIssues, - token: inputProps.token, - topics: inputProps.topics, - repoVariables: inputProps.repoVariables, - secrets: inputProps.secrets, - oidcCustomization: inputProps.oidcCustomization, - requiredCommitSigning: inputProps.requiredCommitSigning, - requiredLinearHistory: inputProps.requiredLinearHistory, - customProperties: inputProps.customProperties, - subscribe: inputProps.subscribe, - autoInit: inputProps.autoInit, + ...inputProps, }, output: { remoteUrl: outputProps.remoteUrl, @@ -115,6 +81,7 @@ export function createGithubRepoCreateAction(options: { subscribe, token: providedToken, autoInit = undefined, + workflowAccess, } = ctx.input; const { host, owner, repo } = parseRepoUrl(repoUrl, integrations); @@ -167,6 +134,7 @@ export function createGithubRepoCreateAction(options: { subscribe, ctx.logger, autoInit, + workflowAccess, ); return newRepo.clone_url; }, diff --git a/plugins/scaffolder-backend-module-github/src/actions/helpers.ts b/plugins/scaffolder-backend-module-github/src/actions/helpers.ts index a3d0caed33..58db784c35 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/helpers.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/helpers.ts @@ -79,6 +79,7 @@ export async function createGithubRepoWithCollaboratorsAndTopics( subscribe: boolean | undefined, logger: LoggerService, autoInit?: boolean | undefined, + workflowAccess?: 'none' | 'organization' | 'user', ) { // eslint-disable-next-line testing-library/no-await-sync-queries const user = await client.rest.users.getByUsername({ @@ -272,6 +273,14 @@ export async function createGithubRepoWithCollaboratorsAndTopics( }); } + if (workflowAccess) { + await client.rest.actions.setWorkflowAccessToRepository({ + access_level: workflowAccess, + owner, + repo, + }); + } + return newRepo; } diff --git a/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts b/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts index 8a901b0e99..5d5946c95f 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts @@ -421,50 +421,59 @@ const autoInit = (z: typeof zod) => .default(false) .optional(); +const workflowAccess = (z: typeof zod) => + z + .enum(['node', 'organization', 'user'], { + description: + 'Level of access for workflows outside of the repository. Default is "none".', + }) + .optional(); + export { - repoUrl, - description, - homepage, access, - requireCodeOwnerReviews, - dismissStaleReviews, - requiredStatusCheckContexts, - requireBranchesToBeUpToDate, - requiredConversationResolution, - requireLastPushApproval, - repoVisibility, - deleteBranchOnMerge, - gitAuthorName, - gitAuthorEmail, + allowAutoMerge, allowMergeCommit, + allowRebaseMerge, allowSquashMerge, allowUpdateBranch, - squashMergeCommitTitle, - squashMergeCommitMessage, - allowRebaseMerge, - allowAutoMerge, + autoInit, + blockCreations, + branch, + bypassPullRequestAllowances, collaborators, + customProperties, + defaultBranch, + deleteBranchOnMerge, + description, + dismissStaleReviews, + gitAuthorEmail, + gitAuthorName, + gitCommitMessage, + hasIssues, hasProjects, hasWiki, - hasIssues, - token, - topics, - defaultBranch, - gitCommitMessage, - sourcePath, - repoVariables, - secrets, + homepage, oidcCustomization, - customProperties, - subscribe, - requiredApprovingReviewCount, - restrictions, - requiredCommitSigning, - requiredLinearHistory, protectDefaultBranch, protectEnforceAdmins, - bypassPullRequestAllowances, - branch, - blockCreations, - autoInit, + repoUrl, + repoVariables, + repoVisibility, + requireBranchesToBeUpToDate, + requireCodeOwnerReviews, + requiredApprovingReviewCount, + requiredCommitSigning, + requiredConversationResolution, + requiredLinearHistory, + requiredStatusCheckContexts, + requireLastPushApproval, + restrictions, + secrets, + sourcePath, + squashMergeCommitMessage, + squashMergeCommitTitle, + subscribe, + token, + topics, + workflowAccess, }; diff --git a/plugins/scaffolder-backend-module-github/src/actions/outputProperties.ts b/plugins/scaffolder-backend-module-github/src/actions/outputProperties.ts index a1ee53fec5..b35047083d 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/outputProperties.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/outputProperties.ts @@ -31,6 +31,4 @@ const commitHash = (z: typeof zod) => description: 'The git commit hash of the initial commit', }); -export { remoteUrl }; -export { repoContentsUrl }; -export { commitHash }; +export { commitHash, remoteUrl, repoContentsUrl }; From eaf5af6397f7b714b2f3007f8e06d843024299e5 Mon Sep 17 00:00:00 2001 From: Phred Date: Fri, 2 Jan 2026 13:00:26 -0600 Subject: [PATCH 2/3] fixed typo Signed-off-by: Phred --- .../src/actions/inputProperties.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts b/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts index 5d5946c95f..a474272ef7 100644 --- a/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts +++ b/plugins/scaffolder-backend-module-github/src/actions/inputProperties.ts @@ -423,7 +423,7 @@ const autoInit = (z: typeof zod) => const workflowAccess = (z: typeof zod) => z - .enum(['node', 'organization', 'user'], { + .enum(['none', 'organization', 'user'], { description: 'Level of access for workflows outside of the repository. Default is "none".', }) From 84370ba98d4f759a3de7f5fadcd8980b36751fb5 Mon Sep 17 00:00:00 2001 From: Phred Date: Fri, 2 Jan 2026 13:32:39 -0600 Subject: [PATCH 3/3] yarn build:api-reports Signed-off-by: Phred --- .../report.api.md | 80 +++++++++++-------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/plugins/scaffolder-backend-module-github/report.api.md b/plugins/scaffolder-backend-module-github/report.api.md index ed109eb9e3..b6b2d97ac8 100644 --- a/plugins/scaffolder-backend-module-github/report.api.md +++ b/plugins/scaffolder-backend-module-github/report.api.md @@ -227,10 +227,15 @@ export function createGithubRepoCreateAction(options: { }): TemplateAction< { repoUrl: string; - description?: string | undefined; - homepage?: string | undefined; access?: string | undefined; - requireCodeOwnerReviews?: boolean | undefined; + allowAutoMerge?: boolean | undefined; + allowMergeCommit?: boolean | undefined; + allowRebaseMerge?: boolean | undefined; + allowSquashMerge?: boolean | undefined; + allowUpdateBranch?: boolean | undefined; + autoInit?: boolean | undefined; + blockCreations?: boolean | undefined; + branch?: string | undefined; bypassPullRequestAllowances?: | { apps?: string[] | undefined; @@ -238,30 +243,6 @@ export function createGithubRepoCreateAction(options: { users?: string[] | undefined; } | undefined; - requiredApprovingReviewCount?: number | undefined; - restrictions?: - | { - teams: string[]; - users: string[]; - apps?: string[] | undefined; - } - | undefined; - requiredStatusCheckContexts?: string[] | undefined; - requireBranchesToBeUpToDate?: boolean | undefined; - requiredConversationResolution?: boolean | undefined; - repoVisibility?: 'internal' | 'private' | 'public' | undefined; - deleteBranchOnMerge?: boolean | undefined; - allowMergeCommit?: boolean | undefined; - allowSquashMerge?: boolean | undefined; - squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; - squashMergeCommitMessage?: - | 'PR_BODY' - | 'COMMIT_MESSAGES' - | 'BLANK' - | undefined; - allowRebaseMerge?: boolean | undefined; - allowAutoMerge?: boolean | undefined; - allowUpdateBranch?: boolean | undefined; collaborators?: | ( | { @@ -274,24 +255,55 @@ export function createGithubRepoCreateAction(options: { } )[] | undefined; + customProperties?: Record | undefined; + defaultBranch?: string | undefined; + deleteBranchOnMerge?: boolean | undefined; + description?: string | undefined; + dismissStaleReviews?: boolean | undefined; + gitAuthorEmail?: string | undefined; + gitAuthorName?: string | undefined; + gitCommitMessage?: string | undefined; + hasIssues?: boolean | undefined; hasProjects?: boolean | undefined; hasWiki?: boolean | undefined; - hasIssues?: boolean | undefined; - token?: string | undefined; - topics?: string[] | undefined; - repoVariables?: Record | undefined; - secrets?: Record | undefined; + homepage?: string | undefined; oidcCustomization?: | { useDefault: boolean; includeClaimKeys?: string[] | undefined; } | undefined; + protectDefaultBranch?: boolean | undefined; + protectEnforceAdmins?: boolean | undefined; + repoVariables?: Record | undefined; + repoVisibility?: 'internal' | 'private' | 'public' | undefined; + requireBranchesToBeUpToDate?: boolean | undefined; + requireCodeOwnerReviews?: boolean | undefined; + requiredApprovingReviewCount?: number | undefined; requiredCommitSigning?: boolean | undefined; + requiredConversationResolution?: boolean | undefined; requiredLinearHistory?: boolean | undefined; - customProperties?: Record | undefined; + requiredStatusCheckContexts?: string[] | undefined; + requireLastPushApproval?: boolean | undefined; + restrictions?: + | { + teams: string[]; + users: string[]; + apps?: string[] | undefined; + } + | undefined; + secrets?: Record | undefined; + sourcePath?: string | undefined; + squashMergeCommitMessage?: + | 'PR_BODY' + | 'COMMIT_MESSAGES' + | 'BLANK' + | undefined; + squashMergeCommitTitle?: 'PR_TITLE' | 'COMMIT_OR_PR_TITLE' | undefined; subscribe?: boolean | undefined; - autoInit?: boolean | undefined; + token?: string | undefined; + topics?: string[] | undefined; + workflowAccess?: 'none' | 'organization' | 'user' | undefined; }, { remoteUrl: string;