import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface ActionsHostedRunnerImage { /** * The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: `GET /orgs/{org}/actions/hosted-runners/images/github-owned`. */ id: pulumi.Input; /** * The size of the image in gigabytes. */ sizeGb?: pulumi.Input; /** * The image source. Valid values are "github", "partner", or "custom". Defaults to "github". */ source?: pulumi.Input; } export interface ActionsHostedRunnerMachineSizeDetail { /** * Number of CPU cores. */ cpuCores?: pulumi.Input; /** * Machine size identifier. */ id?: pulumi.Input; /** * Amount of memory in gigabytes. */ memoryGb?: pulumi.Input; /** * Amount of storage in gigabytes. */ storageGb?: pulumi.Input; } export interface ActionsHostedRunnerPublicIp { /** * Whether this IP range is enabled. */ enabled?: pulumi.Input; /** * Subnet length. */ length?: pulumi.Input; /** * IP address prefix. */ prefix?: pulumi.Input; } export interface ActionsOrganizationPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the organization. */ githubOwnedAllowed: pulumi.Input; /** * Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, monalisa/octocat@*, monalisa/octocat@v2, monalisa/*." */ patternsAlloweds?: pulumi.Input[] | undefined>; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: pulumi.Input; } export interface ActionsOrganizationPermissionsEnabledRepositoriesConfig { /** * List of repository IDs to enable for GitHub Actions. */ repositoryIds: pulumi.Input[]>; } export interface ActionsRepositoryPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the repository. */ githubOwnedAllowed: pulumi.Input; /** * Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, monalisa/octocat@*, monalisa/octocat@v2, monalisa/*." */ patternsAlloweds?: pulumi.Input[] | undefined>; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: pulumi.Input; } export interface BranchProtectionRequiredPullRequestReview { /** * Dismiss approved reviews automatically when a new commit is pushed. Defaults to `false`. */ dismissStaleReviews?: pulumi.Input; /** * The list of actor Names/IDs with dismissal access. If not empty, `restrictDismissals` is ignored. Actor names must either begin with a "/" for users or the organization name followed by a "/" for teams. */ dismissalRestrictions?: pulumi.Input[] | undefined>; /** * The list of actor Names/IDs that are allowed to bypass pull request requirements. Actor names must either begin with a "/" for users or the organization name followed by a "/" for teams. */ pullRequestBypassers?: pulumi.Input[] | undefined>; /** * Require an approved review in pull requests including files with a designated code owner. Defaults to `false`. */ requireCodeOwnerReviews?: pulumi.Input; /** * Require that The most recent push must be approved by someone other than the last pusher. Defaults to `false` */ requireLastPushApproval?: pulumi.Input; /** * Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information. * (https://developer.github.com/v3/repos/branches/#parameters-1) for more information. */ requiredApprovingReviewCount?: pulumi.Input; /** * Restrict pull request review dismissals. */ restrictDismissals?: pulumi.Input; } export interface BranchProtectionRequiredStatusCheck { /** * The list of status checks to require in order to merge into this branch. No status checks are required by default. * * > Note: This attribute can contain multiple string patterns. * If specified, usual value is the [job name](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname). Otherwise, the [job id](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname) is defaulted to. * For workflows that use matrixes, append the matrix name to the value using the following pattern `([, ])`. Matrixes should be specified based on the order of matrix properties in the workflow file. See GitHub Documentation for more information. * For workflows that use reusable workflows, the pattern is ` / `. This can extend multiple levels. */ contexts?: pulumi.Input[] | undefined>; /** * Require branches to be up to date before merging. Defaults to `false`. */ strict?: pulumi.Input; } export interface BranchProtectionRestrictPush { /** * Boolean, setting this to `false` allows people, teams, or apps to create new branches matching this rule. Defaults to `true`. */ blocksCreations?: pulumi.Input; /** * A list of actor Names/IDs that may push to the branch. Actor names must either begin with a "/" for users or the organization name followed by a "/" for teams. Organization administrators, repository administrators, and users with the Maintain role on the repository can always push when all other requirements have passed. */ pushAllowances?: pulumi.Input[] | undefined>; } export interface BranchProtectionV3RequiredPullRequestReviews { /** * Allow specific users, teams, or apps to bypass pull request requirements. See Bypass Pull Request Allowances below for details. */ bypassPullRequestAllowances?: pulumi.Input; /** * Dismiss approved reviews automatically when a new commit is pushed. Defaults to `false`. */ dismissStaleReviews?: pulumi.Input; /** * The list of app slugs with dismissal access. */ dismissalApps?: pulumi.Input[] | undefined>; /** * The list of team slugs with dismissal access. * Always use `slug` of the team, **not** its name. Each team already **has** to have access to the repository. */ dismissalTeams?: pulumi.Input[] | undefined>; /** * The list of user logins with dismissal access */ dismissalUsers?: pulumi.Input[] | undefined>; /** * @deprecated Use enforceAdmins instead */ includeAdmins?: pulumi.Input; /** * Require an approved review in pull requests including files with a designated code owner. Defaults to `false`. */ requireCodeOwnerReviews?: pulumi.Input; /** * Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false` */ requireLastPushApproval?: pulumi.Input; /** * Require x number of approvals to satisfy branch protection requirements. If this is specified it must be a number between 0-6. This requirement matches GitHub's API, see the upstream [documentation](https://developer.github.com/v3/repos/branches/#parameters-1) for more information. */ requiredApprovingReviewCount?: pulumi.Input; } export interface BranchProtectionV3RequiredPullRequestReviewsBypassPullRequestAllowances { /** * The list of app slugs allowed to bypass pull request requirements. */ apps?: pulumi.Input[] | undefined>; /** * The list of team slugs allowed to bypass pull request requirements. */ teams?: pulumi.Input[] | undefined>; /** * The list of user logins allowed to bypass pull request requirements. */ users?: pulumi.Input[] | undefined>; } export interface BranchProtectionV3RequiredStatusChecks { /** * The list of status checks to require in order to merge into this branch. No status checks are required by default. Checks should be strings containing the context and appId like so "context:app_id". */ checks?: pulumi.Input[] | undefined>; /** * [**DEPRECATED**] (Optional) The list of status checks to require in order to merge into this branch. No status checks are required by default. * * > Note: This attribute can contain multiple string patterns. * If specified, usual value is the [job name](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname). Otherwise, the [job id](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idname) is defaulted to. * For workflows that use matrixes, append the matrix name to the value using the following pattern `([, ])`. Matrixes should be specified based on the order of matrix properties in the workflow file. See GitHub Documentation for more information. * For workflows that use reusable workflows, the pattern is ` / `. This can extend multiple levels. * * @deprecated GitHub is deprecating the use of `contexts`. Use a `checks` array instead. */ contexts?: pulumi.Input[] | undefined>; /** * @deprecated Use enforceAdmins instead */ includeAdmins?: pulumi.Input; /** * Require branches to be up to date before merging. Defaults to `false`. */ strict?: pulumi.Input; } export interface BranchProtectionV3Restrictions { /** * The list of app slugs with push access. * * `restrictions` is only available for organization-owned repositories. */ apps?: pulumi.Input[] | undefined>; /** * The list of team slugs with push access. * Always use `slug` of the team, **not** its name. Each team already **has** to have access to the repository. */ teams?: pulumi.Input[] | undefined>; /** * The list of user logins with push access. */ users?: pulumi.Input[] | undefined>; } export interface EnterpriseActionsPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the organization. */ githubOwnedAllowed: pulumi.Input; /** * Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, monalisa/octocat@*, monalisa/octocat@v2, monalisa/*." */ patternsAlloweds?: pulumi.Input[] | undefined>; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: pulumi.Input; } export interface EnterpriseActionsPermissionsEnabledOrganizationsConfig { /** * List of organization IDs to enable for GitHub Actions. */ organizationIds: pulumi.Input[]>; } export interface IssueLabelsLabel { /** * A 6 character hex code, **without the leading #**, identifying the color of the label. */ color: pulumi.Input; /** * A short description of the label. */ description?: pulumi.Input; /** * The name of the label. */ name: pulumi.Input; /** * The URL to the issue label */ url?: pulumi.Input; } export interface OrganizationRulesetBypassActor { /** * (Number) The ID of the actor that can bypass a ruleset. Some actor types such as `DeployKey` do not have an ID. */ actorId?: pulumi.Input; /** * The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`. */ actorType: pulumi.Input; /** * (String) When the specified actor can bypass the ruleset. pullRequest means that an actor can only bypass rules on pull requests. Can be one of: `always`, `pullRequest`, `exempt`. * * ~>Note: at the time of writing this, the following actor types correspond to the following actor IDs: * * - `OrganizationAdmin` > `1` * - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.) */ bypassMode: pulumi.Input; } export interface OrganizationRulesetConditions { /** * (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema) */ refName?: pulumi.Input; /** * The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. */ repositoryIds?: pulumi.Input[] | undefined>; /** * Targets repositories that match the specified name patterns. (see below for nested schema) */ repositoryName?: pulumi.Input; /** * Targets repositories by custom or system properties. (see below for nested schema) * * Exactly one of `repositoryId`, `repositoryName`, or `repositoryProperty` must be set for the rule to target repositories. * * > **Note:** For `push` targets, do not include `refName` in conditions. Push rulesets operate on file content, not on refs. */ repositoryProperty?: pulumi.Input; } export interface OrganizationRulesetConditionsRefName { /** * Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: pulumi.Input[]>; /** * Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches. */ includes: pulumi.Input[]>; } export interface OrganizationRulesetConditionsRepositoryName { /** * Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: pulumi.Input[]>; /** * Array of repository names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~ALL` to include all repositories. */ includes: pulumi.Input[]>; /** * Whether renaming of target repositories is prevented. */ protected?: pulumi.Input; } export interface OrganizationRulesetConditionsRepositoryProperty { /** * The repository properties and values to exclude. The ruleset will not apply if any of these properties match. */ excludes?: pulumi.Input[] | undefined>; /** * The repository properties and values to include. All of these properties must match for the condition to pass. */ includes?: pulumi.Input[] | undefined>; } export interface OrganizationRulesetConditionsRepositoryPropertyExclude { /** * (String) The name of the ruleset. */ name: pulumi.Input; /** * The values to match for the repository property. */ propertyValues: pulumi.Input[]>; /** * The source of the repository property. Defaults to 'custom' if not specified. Can be one of: custom, system */ source?: pulumi.Input; } export interface OrganizationRulesetConditionsRepositoryPropertyInclude { /** * (String) The name of the ruleset. */ name: pulumi.Input; /** * The values to match for the repository property. */ propertyValues: pulumi.Input[]>; /** * The source of the repository property. Defaults to 'custom' if not specified. Can be one of: custom, system */ source?: pulumi.Input; } export interface OrganizationRulesetRules { /** * (Block List, Max: 1) Parameters to be used for the branchNamePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. Conflicts with `tagNamePattern` as it only applies to rulesets with target `branch`. (see below for nested schema) */ branchNamePattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the commitAuthorEmailPattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ commitAuthorEmailPattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the commitMessagePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ commitMessagePattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the committerEmailPattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ committerEmailPattern?: pulumi.Input; /** * (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema) */ copilotCodeReview?: pulumi.Input; /** * (Boolean) Only allow users with bypass permission to create matching refs. */ creation?: pulumi.Input; /** * (Boolean) Only allow users with bypass permissions to delete matching refs. */ deletion?: pulumi.Input; /** * (Block List, Max: 1) Prevent commits that include files with specified file extensions from being pushed to the commit graph. This rule only applies to rulesets with target `push`. (see below for nested schema) */ fileExtensionRestriction?: pulumi.Input; /** * (Block List, Max: 1) Prevent commits that include changes to specified file paths from being pushed to the commit graph. This rule only applies to rulesets with target `push`. (see below for nested schema) */ filePathRestriction?: pulumi.Input; /** * (Integer) The maximum number of characters allowed in file paths. */ maxFilePathLength?: pulumi.Input; /** * (Integer) The maximum allowed size, in megabytes (MB), of a file. Valid range is 1-100 MB. */ maxFileSize?: pulumi.Input; /** * (Boolean) Prevent users with push access from force pushing to branches. */ nonFastForward?: pulumi.Input; /** * (Block List, Max: 1) Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. (see below for nested schema) */ pullRequest?: pulumi.Input; /** * (Block List, Max: 1) Define which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated. Multiple code scanning tools can be specified. (see below for nested schema) */ requiredCodeScanning?: pulumi.Input; /** * (Boolean) Prevent merge commits from being pushed to matching branches. */ requiredLinearHistory?: pulumi.Input; /** * (Boolean) Commits pushed to matching branches must have verified signatures. */ requiredSignatures?: pulumi.Input; /** * (Block List, Max: 1) Choose which status checks must pass before branches can be merged into a branch that matches this rule. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed. (see below for nested schema) */ requiredStatusChecks?: pulumi.Input; /** * (Block List, Max: 1) Define which Actions workflows must pass before changes can be merged into a branch matching the rule. Multiple workflows can be specified. (see below for nested schema) */ requiredWorkflows?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the tagNamePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. Conflicts with `branchNamePattern` as it only applies to rulesets with target `tag`. (see below for nested schema) */ tagNamePattern?: pulumi.Input; /** * (Boolean) Only allow users with bypass permission to update matching refs. */ update?: pulumi.Input; } export interface OrganizationRulesetRulesBranchNamePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface OrganizationRulesetRulesCommitAuthorEmailPattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface OrganizationRulesetRulesCommitMessagePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface OrganizationRulesetRulesCommitterEmailPattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface OrganizationRulesetRulesCopilotCodeReview { /** * Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`. */ reviewDraftPullRequests?: pulumi.Input; /** * Copilot automatically reviews each new push to the pull request. Defaults to `false`. */ reviewOnPush?: pulumi.Input; } export interface OrganizationRulesetRulesFileExtensionRestriction { /** * The file extensions that are restricted from being pushed to the commit graph. */ restrictedFileExtensions: pulumi.Input[]>; } export interface OrganizationRulesetRulesFilePathRestriction { /** * The file paths that are restricted from being pushed to the commit graph. */ restrictedFilePaths: pulumi.Input[]>; } export interface OrganizationRulesetRulesMaxFilePathLength { /** * The maximum allowed length of a file path. */ maxFilePathLength: pulumi.Input; } export interface OrganizationRulesetRulesMaxFileSize { /** * The maximum allowed size of a file in megabytes (MB). Valid range is 1-100 MB. */ maxFileSize: pulumi.Input; } export interface OrganizationRulesetRulesPullRequest { /** * Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled. */ allowedMergeMethods?: pulumi.Input[] | undefined>; /** * New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`. */ dismissStaleReviewsOnPush?: pulumi.Input; /** * Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`. */ requireCodeOwnerReview?: pulumi.Input; /** * Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`. */ requireLastPushApproval?: pulumi.Input; /** * The number of approving reviews that are required before a pull request can be merged. Defaults to `0`. */ requiredApprovingReviewCount?: pulumi.Input; /** * All conversations on code must be resolved before a pull request can be merged. Defaults to `false`. */ requiredReviewThreadResolution?: pulumi.Input; /** * Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change. */ requiredReviewers?: pulumi.Input[] | undefined>; } export interface OrganizationRulesetRulesPullRequestRequiredReviewer { /** * File patterns (fnmatch syntax) that this reviewer must approve. */ filePatterns: pulumi.Input[]>; /** * Minimum number of approvals required from this reviewer. Set to 0 to make approval optional. */ minimumApprovals: pulumi.Input; /** * The reviewer that must review matching files. */ reviewer: pulumi.Input; } export interface OrganizationRulesetRulesPullRequestRequiredReviewerReviewer { /** * The ID of the reviewer that must review. */ id: pulumi.Input; /** * The type of reviewer. Currently only `Team` is supported. */ type: pulumi.Input; } export interface OrganizationRulesetRulesRequiredCodeScanning { /** * Tools that must provide code scanning results for this rule to pass. */ requiredCodeScanningTools: pulumi.Input[]>; } export interface OrganizationRulesetRulesRequiredCodeScanningRequiredCodeScanningTool { /** * The severity level at which code scanning results that raise alerts block a reference update. Can be one of: `none`, `errors`, `errorsAndWarnings`, `all`. */ alertsThreshold: pulumi.Input; /** * The severity level at which code scanning results that raise security alerts block a reference update. Can be one of: `none`, `critical`, `highOrHigher`, `mediumOrHigher`, `all`. */ securityAlertsThreshold: pulumi.Input; /** * The name of a code scanning tool. */ tool: pulumi.Input; } export interface OrganizationRulesetRulesRequiredStatusChecks { /** * (Boolean) Allow repositories and branches to be created if a check would otherwise prohibit it. Defaults to `false`. */ doNotEnforceOnCreate?: pulumi.Input; /** * Status checks that are required. Several can be defined. */ requiredChecks: pulumi.Input[]>; /** * Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled. Defaults to `false`. */ strictRequiredStatusChecksPolicy?: pulumi.Input; } export interface OrganizationRulesetRulesRequiredStatusChecksRequiredCheck { /** * The status check context name that must be present on the commit. */ context: pulumi.Input; /** * The optional integration ID that this status check must originate from. */ integrationId?: pulumi.Input; } export interface OrganizationRulesetRulesRequiredWorkflows { /** * Allow repositories and branches to be created if a check would otherwise prohibit it. */ doNotEnforceOnCreate?: pulumi.Input; /** * Actions workflows that are required. Several can be defined. */ requiredWorkflows: pulumi.Input[]>; } export interface OrganizationRulesetRulesRequiredWorkflowsRequiredWorkflow { /** * The path to the workflow YAML definition file. */ path: pulumi.Input; /** * The ref (branch or tag) of the workflow file to use. */ ref?: pulumi.Input; /** * The repository in which the workflow is defined. */ repositoryId: pulumi.Input; } export interface OrganizationRulesetRulesTagNamePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface OrganizationWebhookConfiguration { /** * The content type for the payload. Valid values are either 'form' or 'json'. */ contentType?: pulumi.Input; /** * Insecure SSL boolean toggle. Defaults to 'false'. */ insecureSsl?: pulumi.Input; /** * The shared secret for the webhook */ secret?: pulumi.Input; /** * URL of the webhook */ url: pulumi.Input; } export interface ProviderAppAuth { /** * The GitHub App ID. */ id: pulumi.Input; /** * The GitHub App installation instance ID. */ installationId: pulumi.Input; /** * The GitHub App PEM file contents. */ pemFile: pulumi.Input; } export interface RepositoryCollaboratorsIgnoreTeam { /** * The GitHub team id or the GitHub team slug. */ teamId: pulumi.Input; } export interface RepositoryCollaboratorsTeam { /** * The permission of the outside collaborators for the repository. * Must be one of `pull`, `triage`, `push`, `maintain`, `admin` or the name of an existing [custom repository role](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization) within the organisation. Defaults to `pull`. * Must be `push` for personal repositories. Defaults to `push`. */ permission?: pulumi.Input; /** * The GitHub team id or the GitHub team slug. */ teamId: pulumi.Input; } export interface RepositoryCollaboratorsUser { /** * The permission of the outside collaborators for the repository. * Must be one of `pull`, `push`, `maintain`, `triage` or `admin` or the name of an existing [custom repository role](https://docs.github.com/en/enterprise-cloud@latest/organizations/managing-peoples-access-to-your-organization-with-roles/managing-custom-repository-roles-for-an-organization) within the organization for organization-owned repositories. * Must be `push` for personal repositories. Defaults to `push`. */ permission?: pulumi.Input; /** * The user to add to the repository as a collaborator. */ username: pulumi.Input; } export interface RepositoryEnvironmentDeploymentBranchPolicy { /** * Whether only branches that match the specified name patterns can deploy to this environment. */ customBranchPolicies: pulumi.Input; /** * Whether only branches with branch protection rules can deploy to this environment. */ protectedBranches: pulumi.Input; } export interface RepositoryEnvironmentReviewer { /** * Up to 6 IDs for teams who may review jobs that reference the environment. Reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ teams?: pulumi.Input[] | undefined>; /** * Up to 6 IDs for users who may review jobs that reference the environment. Reviewers must have at least read access to the repository. Only one of the required reviewers needs to approve the job for it to proceed. */ users?: pulumi.Input[] | undefined>; } export interface RepositoryPages { /** * The type of GitHub Pages site to build. Can be `legacy` or `workflow`. If you use `legacy` as build type you need to set the option `source`. */ buildType?: pulumi.Input; /** * The custom domain for the repository. This can only be set after the repository has been created. */ cname?: pulumi.Input; /** * Whether the rendered GitHub Pages site has a custom 404 page. */ custom404?: pulumi.Input; /** * The absolute URL (including scheme) of the rendered GitHub Pages site e.g. `https://username.github.io`. */ htmlUrl?: pulumi.Input; /** * The source branch and directory for the rendered Pages site. See GitHub Pages Source below for details. */ source?: pulumi.Input; /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status?: pulumi.Input; url?: pulumi.Input; } export interface RepositoryPagesSource { /** * The repository branch used to publish the site's source files (e.g., `main` or `gh-pages`). */ branch: pulumi.Input; /** * The repository directory from which the site publishes. Defaults to `/`. Can be `/` or `/docs`. */ path?: pulumi.Input; } export interface RepositoryRulesetBypassActor { /** * (Number) The ID of the actor that can bypass a ruleset. If `actorType` is `Integration`, `actorId` is a GitHub App ID. App ID can be obtained by following instructions from the [Get an App API docs](https://docs.github.com/en/rest/apps/apps?apiVersion=2022-11-28#get-an-app). Some actor types such as `DeployKey` do not have an ID. */ actorId?: pulumi.Input; /** * The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`, `DeployKey`. */ actorType: pulumi.Input; /** * (String) When the specified actor can bypass the ruleset. pullRequest means that an actor can only bypass rules on pull requests. Can be one of: `always`, `pullRequest`, `exempt`. * * > Note: at the time of writing this, the following actor types correspond to the following actor IDs: * * - `OrganizationAdmin` > `1` * - `RepositoryRole` (This is the actor type, the following are the base repository roles and their associated IDs.) */ bypassMode: pulumi.Input; } export interface RepositoryRulesetConditions { /** * (Block List, Max: 1) Required for `branch` and `tag` targets. Must NOT be set for `push` targets. (see below for nested schema) * * > **Note:** For `push` targets, do not include `refName` in conditions. Push rulesets operate on file content, not on refs. The `conditions` block is optional for push targets. */ refName: pulumi.Input; } export interface RepositoryRulesetConditionsRefName { /** * Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: pulumi.Input[]>; /** * Array of ref names or patterns to include. One of these patterns must match for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the default branch or `~ALL` to include all branches. */ includes: pulumi.Input[]>; } export interface RepositoryRulesetRules { /** * (Block List, Max: 1) Parameters to be used for the branchNamePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. Conflicts with `tagNamePattern` as it only applied to rulesets with target `branch`. (see below for nested schema) */ branchNamePattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the commitAuthorEmailPattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ commitAuthorEmailPattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the commitMessagePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ commitMessagePattern?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the committerEmailPattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. (see below for nested schema) */ committerEmailPattern?: pulumi.Input; /** * (Block List, Max: 1) Automatically request Copilot code review for new pull requests if the author has access to Copilot code review and their premium requests quota has not reached the limit. (see below for nested schema) */ copilotCodeReview?: pulumi.Input; /** * (Boolean) Only allow users with bypass permission to create matching refs. */ creation?: pulumi.Input; /** * (Boolean) Only allow users with bypass permissions to delete matching refs. */ deletion?: pulumi.Input; /** * (Block List, Max: 1) Prevent commits that include files with specified file extensions from being pushed to the commit graph. This rule only applies to rulesets with target `push`. (see below for nested schema) */ fileExtensionRestriction?: pulumi.Input; /** * (Block List, Max 1) Parameters to be used for the filePathRestriction rule. When enabled restricts access to files within the repository. (See below for nested schema) */ filePathRestriction?: pulumi.Input; /** * (Integer) The maximum number of characters allowed in file paths. */ maxFilePathLength?: pulumi.Input; /** * (Integer) The maximum allowed size, in megabytes (MB), of a file. Valid range is 1-100 MB. */ maxFileSize?: pulumi.Input; /** * (Block List, Max: 1) Merges must be performed via a merge queue. (see below for nested schema) */ mergeQueue?: pulumi.Input; /** * (Boolean) Prevent users with push access from force pushing to branches. */ nonFastForward?: pulumi.Input; /** * (Block List, Max: 1) Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. (see below for nested schema) */ pullRequest?: pulumi.Input; /** * (Block List, Max: 1) Define which tools must provide code scanning results before the reference is updated. When configured, code scanning must be enabled and have results for both the commit and the reference being updated. Multiple code scanning tools can be specified. (see below for nested schema) */ requiredCodeScanning?: pulumi.Input; /** * (Block List, Max: 1) Choose which environments must be successfully deployed to before branches can be merged into a branch that matches this rule. (see below for nested schema) */ requiredDeployments?: pulumi.Input; /** * (Boolean) Prevent merge commits from being pushed to matching branches. */ requiredLinearHistory?: pulumi.Input; /** * (Boolean) Commits pushed to matching branches must have verified signatures. */ requiredSignatures?: pulumi.Input; /** * (Block List, Max: 1) Choose which status checks must pass before branches can be merged into a branch that matches this rule. When enabled, commits must first be pushed to another branch, then merged or pushed directly to a branch that matches this rule after status checks have passed. (see below for nested schema) */ requiredStatusChecks?: pulumi.Input; /** * (Block List, Max: 1) Parameters to be used for the tagNamePattern rule. This rule only applies to repositories within an enterprise, it cannot be applied to repositories owned by individuals or regular organizations. Conflicts with `branchNamePattern` as it only applied to rulesets with target `tag`. (see below for nested schema) */ tagNamePattern?: pulumi.Input; /** * (Boolean) Only allow users with bypass permission to update matching refs. */ update?: pulumi.Input; /** * (Boolean) Branch can pull changes from its upstream repository. This is only applicable to forked repositories. Requires `update` to be set to `true`. Note: behaviour is affected by a known bug on the GitHub side which may cause issues when using this parameter. */ updateAllowsFetchAndMerge?: pulumi.Input; } export interface RepositoryRulesetRulesBranchNamePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface RepositoryRulesetRulesCommitAuthorEmailPattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface RepositoryRulesetRulesCommitMessagePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface RepositoryRulesetRulesCommitterEmailPattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface RepositoryRulesetRulesCopilotCodeReview { /** * Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`. */ reviewDraftPullRequests?: pulumi.Input; /** * Copilot automatically reviews each new push to the pull request. Defaults to `false`. */ reviewOnPush?: pulumi.Input; } export interface RepositoryRulesetRulesFileExtensionRestriction { /** * A list of file extensions. */ restrictedFileExtensions: pulumi.Input[]>; } export interface RepositoryRulesetRulesFilePathRestriction { /** * The file paths that are restricted from being pushed to the commit graph. */ restrictedFilePaths: pulumi.Input[]>; } export interface RepositoryRulesetRulesMaxFilePathLength { /** * The maximum allowed length of a file path. */ maxFilePathLength: pulumi.Input; } export interface RepositoryRulesetRulesMaxFileSize { /** * The maximum allowed size of a file in megabytes (MB). Valid range is 1-100 MB. */ maxFileSize: pulumi.Input; } export interface RepositoryRulesetRulesMergeQueue { /** * Maximum time for a required status check to report a conclusion. After this much time has elapsed, checks that have not reported a conclusion will be assumed to have failed. Defaults to `60`. */ checkResponseTimeoutMinutes?: pulumi.Input; /** * When set to ALLGREEN, the merge commit created by merge queue for each PR in the group must pass all required checks to merge. When set to HEADGREEN, only the commit at the head of the merge group, i.e. the commit containing changes from all of the PRs in the group, must pass its required checks to merge. Can be one of: ALLGREEN, HEADGREEN. Defaults to `ALLGREEN`. */ groupingStrategy?: pulumi.Input; /** * Limit the number of queued pull requests requesting checks and workflow runs at the same time. Defaults to `5`. */ maxEntriesToBuild?: pulumi.Input; /** * The maximum number of PRs that will be merged together in a group. Defaults to `5`. */ maxEntriesToMerge?: pulumi.Input; /** * Method to use when merging changes from queued pull requests. Can be one of: MERGE, SQUASH, REBASE. Defaults to `MERGE`. */ mergeMethod?: pulumi.Input; /** * The minimum number of PRs that will be merged together in a group. Defaults to `1`. */ minEntriesToMerge?: pulumi.Input; /** * The time merge queue should wait after the first PR is added to the queue for the minimum group size to be met. After this time has elapsed, the minimum group size will be ignored and a smaller group will be merged. Defaults to `5`. */ minEntriesToMergeWaitMinutes?: pulumi.Input; } export interface RepositoryRulesetRulesPullRequest { /** * Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled. */ allowedMergeMethods?: pulumi.Input[] | undefined>; /** * New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`. */ dismissStaleReviewsOnPush?: pulumi.Input; /** * Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`. */ requireCodeOwnerReview?: pulumi.Input; /** * Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`. */ requireLastPushApproval?: pulumi.Input; /** * The number of approving reviews that are required before a pull request can be merged. Defaults to `0`. */ requiredApprovingReviewCount?: pulumi.Input; /** * All conversations on code must be resolved before a pull request can be merged. Defaults to `false`. */ requiredReviewThreadResolution?: pulumi.Input; /** * Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change. */ requiredReviewers?: pulumi.Input[] | undefined>; } export interface RepositoryRulesetRulesPullRequestRequiredReviewer { /** * File patterns (fnmatch syntax) that this reviewer must approve. */ filePatterns: pulumi.Input[]>; /** * Minimum number of approvals required from this reviewer. Set to 0 to make approval optional. */ minimumApprovals: pulumi.Input; /** * The reviewer that must review matching files. */ reviewer: pulumi.Input; } export interface RepositoryRulesetRulesPullRequestRequiredReviewerReviewer { /** * The ID of the reviewer that must review. */ id: pulumi.Input; /** * The type of reviewer. Currently only `Team` is supported. */ type: pulumi.Input; } export interface RepositoryRulesetRulesRequiredCodeScanning { /** * Tools that must provide code scanning results for this rule to pass. */ requiredCodeScanningTools: pulumi.Input[]>; } export interface RepositoryRulesetRulesRequiredCodeScanningRequiredCodeScanningTool { /** * The severity level at which code scanning results that raise alerts block a reference update. Can be one of: `none`, `errors`, `errorsAndWarnings`, `all`. */ alertsThreshold: pulumi.Input; /** * The severity level at which code scanning results that raise security alerts block a reference update. Can be one of: `none`, `critical`, `highOrHigher`, `mediumOrHigher`, `all`. */ securityAlertsThreshold: pulumi.Input; /** * The name of a code scanning tool */ tool: pulumi.Input; } export interface RepositoryRulesetRulesRequiredDeployments { /** * The environments that must be successfully deployed to before branches can be merged. */ requiredDeploymentEnvironments: pulumi.Input[]>; } export interface RepositoryRulesetRulesRequiredStatusChecks { /** * Allow repositories and branches to be created if a check would otherwise prohibit it. */ doNotEnforceOnCreate?: pulumi.Input; /** * Status checks that are required. Several can be defined. */ requiredChecks: pulumi.Input[]>; /** * Whether pull requests targeting a matching branch must be tested with the latest code. This setting will not take effect unless at least one status check is enabled. Defaults to `false`. */ strictRequiredStatusChecksPolicy?: pulumi.Input; } export interface RepositoryRulesetRulesRequiredStatusChecksRequiredCheck { /** * The status check context name that must be present on the commit. */ context: pulumi.Input; /** * The optional integration ID that this status check must originate from. */ integrationId?: pulumi.Input; } export interface RepositoryRulesetRulesTagNamePattern { /** * (String) The name of the ruleset. */ name?: pulumi.Input; /** * If true, the rule will fail if the pattern matches. */ negate?: pulumi.Input; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: pulumi.Input; /** * The pattern to match with. */ pattern: pulumi.Input; } export interface RepositorySecurityAndAnalysis { /** * The advanced security configuration for the repository. See Advanced Security Configuration below for details. If a repository's visibility is `public`, advanced security is always enabled and cannot be changed, so this setting cannot be supplied. */ advancedSecurity?: pulumi.Input; /** * The code security configuration for the repository. See Code Security below for details. */ codeSecurity?: pulumi.Input; /** * The secret scanning configuration for the repository. See Secret Scanning Configuration below for details. */ secretScanning?: pulumi.Input; /** * The secret scanning ai detection configuration for the repository. See Secret Scanning AI Detection Configuration below for details. */ secretScanningAiDetection?: pulumi.Input; /** * The secret scanning non-provider patterns configuration for this repository. See Secret Scanning Non-Provider Patterns Configuration below for more details. */ secretScanningNonProviderPatterns?: pulumi.Input; /** * The secret scanning push protection configuration for the repository. See Secret Scanning Push Protection Configuration below for details. */ secretScanningPushProtection?: pulumi.Input; } export interface RepositorySecurityAndAnalysisAdvancedSecurity { /** * Set to `enabled` to enable advanced security features on the repository. Can be `enabled` or `disabled`. */ status: pulumi.Input; } export interface RepositorySecurityAndAnalysisCodeSecurity { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: pulumi.Input; } export interface RepositorySecurityAndAnalysisSecretScanning { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: pulumi.Input; } export interface RepositorySecurityAndAnalysisSecretScanningAiDetection { /** * Set to `enabled` to enable secret scanning AI detection on the repository. Can be `enabled` or `disabled`. If set to `enabled`, the repository's visibility must be `public`, `security_and_analysis[0].advanced_security[0].status` must also be set to `enabled`, or your Organization must have split licensing for Advanced security. */ status: pulumi.Input; } export interface RepositorySecurityAndAnalysisSecretScanningNonProviderPatterns { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: pulumi.Input; } export interface RepositorySecurityAndAnalysisSecretScanningPushProtection { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: pulumi.Input; } export interface RepositoryTemplate { /** * Whether the new repository should include all the branches from the template repository (defaults to false, which includes only the default branch from the template). * * > **Note on `internal` visibility with templates**: When creating a repository from a template with `visibility = "internal"`, the provider uses a two-step process due to GitHub API limitations. The template creation API only supports a `private` boolean parameter. Therefore, repositories with `visibility = "internal"` are initially created as private and then immediately updated to internal visibility. This ensures internal repositories are never exposed publicly during creation. */ includeAllBranches?: pulumi.Input; /** * The GitHub organization or user the template repository is owned by. */ owner: pulumi.Input; /** * The name of the template repository. */ repository: pulumi.Input; } export interface RepositoryWebhookConfiguration { /** * The content type for the payload. Valid values are either `form` or `json`. */ contentType?: pulumi.Input; /** * Insecure SSL boolean toggle. Defaults to `false`. */ insecureSsl?: pulumi.Input; /** * The shared secret for the webhook. [See API documentation](https://developer.github.com/v3/repos/hooks/#create-a-hook). */ secret?: pulumi.Input; /** * The URL of the webhook. */ url: pulumi.Input; } export interface TeamMembersMember { /** * The role of the user within the team. * Must be one of `member` or `maintainer`. Defaults to `member`. */ role?: pulumi.Input; /** * The user to add to the team. */ username: pulumi.Input; } export interface TeamSettingsReviewRequestDelegation { /** * The algorithm to use when assigning pull requests to team members. Supported values are ROUND_ROBIN and LOAD_BALANCE. */ algorithm?: pulumi.Input; /** * The number of team members to assign to a pull request. */ memberCount?: pulumi.Input; /** * Whether to notify the entire team when at least one member is also assigned to the pull request. Can be set independently of `reviewRequestDelegation`. Default value is `false`. * * @deprecated Use the top-level notify attribute instead. */ notify?: pulumi.Input; } export interface TeamSyncGroupMappingGroup { /** * The description of the IdP group. */ groupDescription: pulumi.Input; /** * The ID of the IdP group. */ groupId: pulumi.Input; /** * The name of the IdP group. */ groupName: pulumi.Input; } export declare namespace config { } //# sourceMappingURL=input.d.ts.map