import * as outputs from "../types/output"; 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: string; /** * The size of the image in gigabytes. */ sizeGb: number; /** * The image source. Valid values are "github", "partner", or "custom". Defaults to "github". */ source?: string; } export interface ActionsHostedRunnerMachineSizeDetail { /** * Number of CPU cores. */ cpuCores: number; /** * Machine size identifier. */ id: string; /** * Amount of memory in gigabytes. */ memoryGb: number; /** * Amount of storage in gigabytes. */ storageGb: number; } export interface ActionsHostedRunnerPublicIp { /** * Whether this IP range is enabled. */ enabled: boolean; /** * Subnet length. */ length: number; /** * IP address prefix. */ prefix: string; } export interface ActionsOrganizationPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the organization. */ githubOwnedAllowed: boolean; /** * 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?: string[]; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: boolean; } export interface ActionsOrganizationPermissionsEnabledRepositoriesConfig { /** * List of repository IDs to enable for GitHub Actions. */ repositoryIds: number[]; } export interface ActionsRepositoryPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the repository. */ githubOwnedAllowed: boolean; /** * 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?: string[]; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: boolean; } export interface BranchProtectionRequiredPullRequestReview { /** * Dismiss approved reviews automatically when a new commit is pushed. Defaults to `false`. */ dismissStaleReviews?: boolean; /** * 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?: string[]; /** * 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?: string[]; /** * Require an approved review in pull requests including files with a designated code owner. Defaults to `false`. */ requireCodeOwnerReviews?: boolean; /** * Require that The most recent push must be approved by someone other than the last pusher. Defaults to `false` */ requireLastPushApproval?: boolean; /** * 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?: number; /** * Restrict pull request review dismissals. */ restrictDismissals?: boolean; } 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?: string[]; /** * Require branches to be up to date before merging. Defaults to `false`. */ strict?: boolean; } export interface BranchProtectionRestrictPush { /** * Boolean, setting this to `false` allows people, teams, or apps to create new branches matching this rule. Defaults to `true`. */ blocksCreations?: boolean; /** * 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?: string[]; } export interface BranchProtectionV3RequiredPullRequestReviews { /** * Allow specific users, teams, or apps to bypass pull request requirements. See Bypass Pull Request Allowances below for details. */ bypassPullRequestAllowances?: outputs.BranchProtectionV3RequiredPullRequestReviewsBypassPullRequestAllowances; /** * Dismiss approved reviews automatically when a new commit is pushed. Defaults to `false`. */ dismissStaleReviews?: boolean; /** * The list of app slugs with dismissal access. */ dismissalApps?: string[]; /** * 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?: string[]; /** * The list of user logins with dismissal access */ dismissalUsers?: string[]; /** * @deprecated Use enforceAdmins instead */ includeAdmins?: boolean; /** * Require an approved review in pull requests including files with a designated code owner. Defaults to `false`. */ requireCodeOwnerReviews?: boolean; /** * Require that the most recent push must be approved by someone other than the last pusher. Defaults to `false` */ requireLastPushApproval?: boolean; /** * 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?: number; } export interface BranchProtectionV3RequiredPullRequestReviewsBypassPullRequestAllowances { /** * The list of app slugs allowed to bypass pull request requirements. */ apps?: string[]; /** * The list of team slugs allowed to bypass pull request requirements. */ teams?: string[]; /** * The list of user logins allowed to bypass pull request requirements. */ users?: string[]; } 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: string[]; /** * [**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: string[]; /** * @deprecated Use enforceAdmins instead */ includeAdmins?: boolean; /** * Require branches to be up to date before merging. Defaults to `false`. */ strict?: boolean; } export interface BranchProtectionV3Restrictions { /** * The list of app slugs with push access. * * `restrictions` is only available for organization-owned repositories. */ apps?: string[]; /** * 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?: string[]; /** * The list of user logins with push access. */ users?: string[]; } export interface EnterpriseActionsPermissionsAllowedActionsConfig { /** * Whether GitHub-owned actions are allowed in the organization. */ githubOwnedAllowed: boolean; /** * 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?: string[]; /** * Whether actions in GitHub Marketplace from verified creators are allowed. Set to true to allow all GitHub Marketplace actions by verified creators. */ verifiedAllowed?: boolean; } export interface EnterpriseActionsPermissionsEnabledOrganizationsConfig { /** * List of organization IDs to enable for GitHub Actions. */ organizationIds: number[]; } export interface GetActionsEnvironmentSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * Name of the secret */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; } export interface GetActionsEnvironmentVariablesVariable { /** * Timestamp of the variable creation */ createdAt: string; /** * Name of the variable */ name: string; /** * Timestamp of the variable last update */ updatedAt: string; /** * Value of the variable */ value: string; } export interface GetActionsOrganizationSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * Secret name */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; /** * Secret visibility */ visibility: string; } export interface GetActionsOrganizationVariablesVariable { /** * Timestamp of the variable creation */ createdAt: string; /** * Name of the variable */ name: string; /** * Timestamp of the variable last update */ updatedAt: string; /** * Value of the variable */ value: string; /** * Visibility of the variable */ visibility: string; } export interface GetActionsSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * The name of the repository. */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; } export interface GetActionsVariablesVariable { /** * Timestamp of the variable creation */ createdAt: string; /** * The name of the repository. */ name: string; /** * Timestamp of the variable last update */ updatedAt: string; /** * Value of the variable */ value: string; } export interface GetBranchProtectionRulesRule { /** * Identifies the protection rule pattern. */ pattern: string; } export interface GetCodespacesOrganizationSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * Secret name */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; /** * Secret visibility */ visibility: string; } export interface GetCodespacesSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * The name of the repository. */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; } export interface GetCodespacesUserSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * Secret name */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; /** * Secret visibility */ visibility: string; } export interface GetCollaboratorsCollaborator { /** * The GitHub API URL for the collaborator's events. */ eventsUrl: string; /** * The GitHub API URL for the collaborator's followers. */ followersUrl: string; /** * The GitHub API URL for those following the collaborator. */ followingUrl: string; /** * The GitHub API URL for the collaborator's gists. */ gistsUrl: string; /** * The GitHub HTML URL for the collaborator. */ htmlUrl: string; /** * The ID of the collaborator. */ id: number; /** * The collaborator's login. */ login: string; /** * The GitHub API URL for the collaborator's organizations. */ organizationsUrl: string; /** * Filter collaborators returned by their permission. Can be one of: `pull`, `triage`, `push`, `maintain`, `admin`. Defaults to not doing any filtering on permission. */ permission: string; /** * The GitHub API URL for the collaborator's received events. */ receivedEventsUrl: string; /** * The GitHub API URL for the collaborator's repositories. */ reposUrl: string; /** * Whether the user is a GitHub admin. */ siteAdmin: boolean; /** * The GitHub API URL for the collaborator's starred repositories. */ starredUrl: string; /** * The GitHub API URL for the collaborator's subscribed repositories. */ subscriptionsUrl: string; /** * The type of the collaborator (ex. `user`). */ type: string; /** * The GitHub API URL for the collaborator. */ url: string; } export interface GetDependabotOrganizationSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * Secret name */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; /** * Secret visibility */ visibility: string; } export interface GetDependabotSecretsSecret { /** * Timestamp of the secret creation */ createdAt: string; /** * The name of the repository. */ name: string; /** * Timestamp of the secret last update */ updatedAt: string; } export interface GetExternalGroupsExternalGroup { /** * the ID of the group. */ groupId: number; /** * the name of the group. */ groupName: string; /** * the date the group was last updated. */ updatedAt: string; } export interface GetIssueLabelsLabel { /** * The hexadecimal color code for the label, without the leading #. */ color: string; /** * A short description of the label. */ description: string; /** * The name of the label. */ name: string; /** * The URL of the label. */ url: string; } export interface GetOrganizationAppInstallationsInstallation { /** * The ID of the GitHub App. */ appId: number; /** * The URL-friendly name of the GitHub App. */ appSlug: string; /** * The OAuth client ID of the GitHub App. */ clientId: string; /** * The date the GitHub App installation was created. */ createdAt: string; /** * The list of events the GitHub App installation subscribes to. */ events: string[]; /** * The ID of the GitHub App installation. */ id: number; /** * A map of the permissions granted to the GitHub App installation. */ permissions: { [key: string]: string; }; /** * Whether the installation has access to all repositories or only selected ones. Possible values are `all` or `selected`. */ repositorySelection: string; /** * The list of single file paths the GitHub App installation has access to. */ singleFilePaths: string[]; /** * Whether the GitHub App installation is currently suspended. */ suspended: boolean; /** * The ID of the account the GitHub App is installed on. */ targetId: number; /** * The type of account the GitHub App is installed on. Possible values are `Organization` or `User`. */ targetType: string; /** * The date the GitHub App installation was last updated. */ updatedAt: string; } export interface GetOrganizationExternalIdentitiesIdentity { /** * The username of the GitHub user */ login: string; /** * An Object containing the user's SAML data. This object will * be empty if the user is not managed by SAML. */ samlIdentity: { [key: string]: string; }; /** * An Object contining the user's SCIM data. This object will * be empty if the user is not managed by SCIM. */ scimIdentity: { [key: string]: string; }; } export interface GetOrganizationIpAllowListIpAllowList { /** * A single IP address or range of IP addresses in CIDR notation. */ allowListValue: string; /** * Identifies the date and time when the object was created. */ createdAt: string; /** * The ID of the IP allow list entry. */ id: string; /** * Whether the entry is currently active. */ isActive: boolean; /** * The name of the IP allow list entry. */ name: string; /** * Identifies the date and time when the object was last updated. */ updatedAt: string; } export interface GetOrganizationRepositoryRolesRole { /** * The system role from which this role inherits permissions. */ baseRole: string; /** * The description of the organization repository role. */ description: string; /** * The name of the organization repository role. */ name: string; /** * The permissions included in this role. */ permissions: string[]; /** * The ID of the organization repository role. */ roleId: number; } export interface GetOrganizationRoleTeamsTeam { /** * The name of the team. */ name: string; /** * The permission that the team will have for its repositories. */ permission: string; /** * The Slug of the team name. */ slug: string; /** * The ID of the team. */ teamId: number; } export interface GetOrganizationRoleUsersUser { /** * The login for the GitHub user account. */ login: string; /** * The ID of the user. */ userId: number; } export interface GetOrganizationRolesRole { /** * The system role from which this role inherits permissions. */ baseRole: string; /** * The description of the organization role. */ description: string; /** * The name of the organization role. */ name: string; /** * A list of permissions included in this role. */ permissions: string[]; /** * The ID of the organization role. */ roleId: number; /** * The source of this role; one of `Predefined`, `Organization`, or `Enterprise`. */ source: string; } export interface GetOrganizationSecurityManagersTeam { /** * Unique identifier of the team. */ id: number; /** * Name of the team. */ name: string; /** * Permission that the team will have for its repositories. */ permission: string; /** * Name based identifier of the team. */ slug: string; } export interface GetOrganizationTeamSyncGroupsGroup { /** * The description of the IdP group. */ groupDescription: string; /** * The ID of the IdP group. */ groupId: string; /** * The name of the IdP group. */ groupName: string; } export interface GetOrganizationTeamsTeam { /** * The team's description. */ description: string; /** * The ID of the team. */ id: number; /** * List of team members. Not returned if `summaryOnly = true` */ members: string[]; /** * The team's full name. */ name: string; /** * The Node ID of the team. */ nodeId: string; /** * (**DEPRECATED**) The parent team, use `parentTeamId` or `parentTeamSlug` instead. * * @deprecated Use parentTeamId and parentTeamSlug instead. */ parent: { [key: string]: string; }; /** * The ID of the parent team, if there is one. */ parentTeamId: string; /** * The slug of the parent team, if there is one. */ parentTeamSlug: string; /** * The team's privacy type. */ privacy: string; /** * List of team repositories. Not returned if `summaryOnly = true` */ repositories: string[]; /** * The slug of the team. */ slug: string; } export interface GetOrganizationWebhooksWebhook { /** * `true` if the webhook is active. */ active: boolean; /** * the ID of the webhook. */ id: number; /** * the name of the webhook. */ name: string; /** * the type of the webhook. */ type: string; /** * the url of the webhook. */ url: string; } export interface GetReleaseAsset { /** * Browser download URL */ browserDownloadUrl: string; /** * MIME type of the asset */ contentType: string; /** * Date the asset was created */ createdAt: string; /** * ID of the asset */ id: number; /** * Label for the asset */ label: string; /** * The file name of the asset */ name: string; /** * Node ID of the asset */ nodeId: string; /** * Size in byte */ size: number; /** * Date the asset was last updated */ updatedAt: string; /** * URL of the asset */ url: string; } export interface GetRepositoryAutolinkReferencesAutolinkReference { /** * True if alphanumeric. */ isAlphanumeric: boolean; /** * Key prefix. */ keyPrefix: string; /** * Target url template. */ targetUrlTemplate: string; } export interface GetRepositoryBranchesBranch { /** * Name of the branch. */ name: string; /** * Whether the branch is protected. */ protected: boolean; } export interface GetRepositoryCustomPropertiesProperty { /** * Name of the property */ propertyName: string; /** * Value of the property */ propertyValues: string[]; } export interface GetRepositoryDeployKeysKey { /** * Key id */ id: number; /** * Key itself */ key: string; /** * Key title */ title: string; /** * `true` if the key was verified. */ verified: boolean; } export interface GetRepositoryDeploymentBranchPoliciesDeploymentBranchPolicy { /** * Id of the policy. */ id: string; /** * The name pattern that branches must match in order to deploy to the environment. */ name: string; } export interface GetRepositoryEnvironmentDeploymentPoliciesPolicy { /** * The pattern that branch or tag names must match in order to deploy to the environment. */ pattern: string; /** * Type of the policy; this could be `branch` or `tag`. */ type: string; } export interface GetRepositoryEnvironmentsEnvironment { /** * Environment name. */ name: string; /** * Environment node id. */ nodeId: string; } export interface GetRepositoryPage { buildType: string; cname: string; custom404: boolean; /** * The URL to view the license details on GitHub. */ htmlUrl: string; sources: outputs.GetRepositoryPageSource[]; status: string; /** * The URL to access information about the license on GitHub. */ url: string; } export interface GetRepositoryPageSource { branch: string; /** * The path to the license file within the repository. */ path: string; } export interface GetRepositoryPagesSource { /** * The repository branch used to publish the site's source files. */ branch: string; /** * The repository directory from which the site publishes. */ path: string; } export interface GetRepositoryPullRequestsResult { /** * If set, filters Pull Requests by base branch name. */ baseRef: string; /** * Head commit SHA of the Pull Request base. */ baseSha: string; /** * Body of the Pull Request. */ body: string; /** * Indicates Whether this Pull Request is a draft. */ draft: boolean; /** * Owner of the Pull Request head repository. */ headOwner: string; /** * If set, filters Pull Requests by head user or head organization and branch name in the format of "user:ref-name" or "organization:ref-name". For example: "github:new-script-format" or "octocat:test-branch". */ headRef: string; /** * Name of the Pull Request head repository. */ headRepository: string; /** * Head commit SHA of the Pull Request head. */ headSha: string; /** * List of label names set on the Pull Request. */ labels: string[]; /** * Indicates whether the base repository maintainers can modify the Pull Request. */ maintainerCanModify: boolean; /** * The number of the Pull Request within the repository. */ number: number; /** * Unix timestamp indicating the Pull Request creation time. */ openedAt: number; /** * GitHub login of the user who opened the Pull Request. */ openedBy: string; /** * If set, filters Pull Requests by state. Can be "open", "closed", or "all". Default: "open". */ state: string; /** * The title of the Pull Request. */ title: string; /** * The timestamp of the last Pull Request update. */ updatedAt: number; } export interface GetRepositoryRepositoryLicense { /** * Content of the license file, encoded by encoding scheme mentioned below. */ content: string; /** * The URL to download the raw content of the license file. */ downloadUrl: string; /** * The encoding used for the content (e.g., "base64"). */ encoding: string; /** * The URL to access information about the license file as a Git blob. */ gitUrl: string; /** * The URL to view the license details on GitHub. */ htmlUrl: string; /** * `license` block consists of the fields documented below. */ licenses: outputs.GetRepositoryRepositoryLicenseLicense[]; /** * The name of the repository. */ name: string; /** * The path to the license file within the repository. */ path: string; /** * The SHA hash of the license file. */ sha: string; /** * The size of the license file in bytes. */ size: number; /** * The type of the content, (e.g., "file"). */ type: string; /** * The URL to access information about the license on GitHub. */ url: string; } export interface GetRepositoryRepositoryLicenseLicense { /** * The text of the license. */ body: string; /** * Conditions associated with the license. */ conditions: string[]; /** * A description of the license. */ description: string; /** * Indicates if the license is featured. */ featured: boolean; /** * The URL to view the license details on GitHub. */ htmlUrl: string; /** * Details about the implementation of the license. */ implementation: string; /** * A key representing the license type (e.g., "apache-2.0"). */ key: string; /** * Limitations associated with the license. */ limitations: string[]; /** * The name of the repository. */ name: string; /** * Permissions associated with the license. */ permissions: string[]; /** * The SPDX identifier for the license (e.g., "Apache-2.0"). */ spdxId: string; /** * The URL to access information about the license on GitHub. */ url: string; } export interface GetRepositoryTeamsTeam { /** * The name of the repository. */ name: string; /** * Team permission */ permission: string; /** * Team slug */ slug: string; } export interface GetRepositoryTemplate { owner: string; repository: string; } export interface GetRepositoryWebhooksWebhook { /** * `true` if the webhook is active. */ active: boolean; /** * the ID of the webhook. */ id: number; /** * the name of the webhook. */ name: string; /** * the type of the webhook. */ type: string; /** * the url of the webhook. */ url: string; } export interface GetTeamRepositoriesDetailed { repoId: number; repoName: string; roleName: string; } export interface GetTreeEntry { mode: string; path: string; sha: string; size: number; type: string; } export interface IssueLabelsLabel { /** * A 6 character hex code, **without the leading #**, identifying the color of the label. */ color: string; /** * A short description of the label. */ description?: string; /** * The name of the label. */ name: string; /** * The URL to the issue label */ url: string; } 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?: number; /** * The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`. */ actorType: string; /** * (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: string; } 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?: outputs.OrganizationRulesetConditionsRefName; /** * The repository IDs that the ruleset applies to. One of these IDs must match for the condition to pass. */ repositoryIds?: number[]; /** * Targets repositories that match the specified name patterns. (see below for nested schema) */ repositoryName?: outputs.OrganizationRulesetConditionsRepositoryName; /** * 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?: outputs.OrganizationRulesetConditionsRepositoryProperty; } export interface OrganizationRulesetConditionsRefName { /** * Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: string[]; /** * 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: string[]; } export interface OrganizationRulesetConditionsRepositoryName { /** * Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: string[]; /** * 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: string[]; /** * Whether renaming of target repositories is prevented. */ protected?: boolean; } export interface OrganizationRulesetConditionsRepositoryProperty { /** * The repository properties and values to exclude. The ruleset will not apply if any of these properties match. */ excludes?: outputs.OrganizationRulesetConditionsRepositoryPropertyExclude[]; /** * The repository properties and values to include. All of these properties must match for the condition to pass. */ includes?: outputs.OrganizationRulesetConditionsRepositoryPropertyInclude[]; } export interface OrganizationRulesetConditionsRepositoryPropertyExclude { /** * (String) The name of the ruleset. */ name: string; /** * The values to match for the repository property. */ propertyValues: string[]; /** * The source of the repository property. Defaults to 'custom' if not specified. Can be one of: custom, system */ source?: string; } export interface OrganizationRulesetConditionsRepositoryPropertyInclude { /** * (String) The name of the ruleset. */ name: string; /** * The values to match for the repository property. */ propertyValues: string[]; /** * The source of the repository property. Defaults to 'custom' if not specified. Can be one of: custom, system */ source?: string; } 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?: outputs.OrganizationRulesetRulesBranchNamePattern; /** * (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?: outputs.OrganizationRulesetRulesCommitAuthorEmailPattern; /** * (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?: outputs.OrganizationRulesetRulesCommitMessagePattern; /** * (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?: outputs.OrganizationRulesetRulesCommitterEmailPattern; /** * (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?: outputs.OrganizationRulesetRulesCopilotCodeReview; /** * (Boolean) Only allow users with bypass permission to create matching refs. */ creation?: boolean; /** * (Boolean) Only allow users with bypass permissions to delete matching refs. */ deletion?: boolean; /** * (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?: outputs.OrganizationRulesetRulesFileExtensionRestriction; /** * (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?: outputs.OrganizationRulesetRulesFilePathRestriction; /** * (Integer) The maximum number of characters allowed in file paths. */ maxFilePathLength?: outputs.OrganizationRulesetRulesMaxFilePathLength; /** * (Integer) The maximum allowed size, in megabytes (MB), of a file. Valid range is 1-100 MB. */ maxFileSize?: outputs.OrganizationRulesetRulesMaxFileSize; /** * (Boolean) Prevent users with push access from force pushing to branches. */ nonFastForward?: boolean; /** * (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?: outputs.OrganizationRulesetRulesPullRequest; /** * (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?: outputs.OrganizationRulesetRulesRequiredCodeScanning; /** * (Boolean) Prevent merge commits from being pushed to matching branches. */ requiredLinearHistory?: boolean; /** * (Boolean) Commits pushed to matching branches must have verified signatures. */ requiredSignatures?: boolean; /** * (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?: outputs.OrganizationRulesetRulesRequiredStatusChecks; /** * (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?: outputs.OrganizationRulesetRulesRequiredWorkflows; /** * (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?: outputs.OrganizationRulesetRulesTagNamePattern; /** * (Boolean) Only allow users with bypass permission to update matching refs. */ update?: boolean; } export interface OrganizationRulesetRulesBranchNamePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface OrganizationRulesetRulesCommitAuthorEmailPattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface OrganizationRulesetRulesCommitMessagePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface OrganizationRulesetRulesCommitterEmailPattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface OrganizationRulesetRulesCopilotCodeReview { /** * Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`. */ reviewDraftPullRequests?: boolean; /** * Copilot automatically reviews each new push to the pull request. Defaults to `false`. */ reviewOnPush?: boolean; } export interface OrganizationRulesetRulesFileExtensionRestriction { /** * The file extensions that are restricted from being pushed to the commit graph. */ restrictedFileExtensions: string[]; } export interface OrganizationRulesetRulesFilePathRestriction { /** * The file paths that are restricted from being pushed to the commit graph. */ restrictedFilePaths: string[]; } export interface OrganizationRulesetRulesMaxFilePathLength { /** * The maximum allowed length of a file path. */ maxFilePathLength: number; } export interface OrganizationRulesetRulesMaxFileSize { /** * The maximum allowed size of a file in megabytes (MB). Valid range is 1-100 MB. */ maxFileSize: number; } export interface OrganizationRulesetRulesPullRequest { /** * Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled. */ allowedMergeMethods: string[]; /** * New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`. */ dismissStaleReviewsOnPush?: boolean; /** * Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`. */ requireCodeOwnerReview?: boolean; /** * Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`. */ requireLastPushApproval?: boolean; /** * The number of approving reviews that are required before a pull request can be merged. Defaults to `0`. */ requiredApprovingReviewCount?: number; /** * All conversations on code must be resolved before a pull request can be merged. Defaults to `false`. */ requiredReviewThreadResolution?: boolean; /** * Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change. */ requiredReviewers?: outputs.OrganizationRulesetRulesPullRequestRequiredReviewer[]; } export interface OrganizationRulesetRulesPullRequestRequiredReviewer { /** * File patterns (fnmatch syntax) that this reviewer must approve. */ filePatterns: string[]; /** * Minimum number of approvals required from this reviewer. Set to 0 to make approval optional. */ minimumApprovals: number; /** * The reviewer that must review matching files. */ reviewer: outputs.OrganizationRulesetRulesPullRequestRequiredReviewerReviewer; } export interface OrganizationRulesetRulesPullRequestRequiredReviewerReviewer { /** * The ID of the reviewer that must review. */ id: number; /** * The type of reviewer. Currently only `Team` is supported. */ type: string; } export interface OrganizationRulesetRulesRequiredCodeScanning { /** * Tools that must provide code scanning results for this rule to pass. */ requiredCodeScanningTools: outputs.OrganizationRulesetRulesRequiredCodeScanningRequiredCodeScanningTool[]; } 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: string; /** * 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: string; /** * The name of a code scanning tool. */ tool: string; } export interface OrganizationRulesetRulesRequiredStatusChecks { /** * (Boolean) Allow repositories and branches to be created if a check would otherwise prohibit it. Defaults to `false`. */ doNotEnforceOnCreate?: boolean; /** * Status checks that are required. Several can be defined. */ requiredChecks: outputs.OrganizationRulesetRulesRequiredStatusChecksRequiredCheck[]; /** * 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?: boolean; } export interface OrganizationRulesetRulesRequiredStatusChecksRequiredCheck { /** * The status check context name that must be present on the commit. */ context: string; /** * The optional integration ID that this status check must originate from. */ integrationId?: number; } export interface OrganizationRulesetRulesRequiredWorkflows { /** * Allow repositories and branches to be created if a check would otherwise prohibit it. */ doNotEnforceOnCreate?: boolean; /** * Actions workflows that are required. Several can be defined. */ requiredWorkflows: outputs.OrganizationRulesetRulesRequiredWorkflowsRequiredWorkflow[]; } export interface OrganizationRulesetRulesRequiredWorkflowsRequiredWorkflow { /** * The path to the workflow YAML definition file. */ path: string; /** * The ref (branch or tag) of the workflow file to use. */ ref?: string; /** * The repository in which the workflow is defined. */ repositoryId: number; } export interface OrganizationRulesetRulesTagNamePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface OrganizationWebhookConfiguration { /** * The content type for the payload. Valid values are either 'form' or 'json'. */ contentType?: string; /** * Insecure SSL boolean toggle. Defaults to 'false'. */ insecureSsl?: boolean; /** * The shared secret for the webhook */ secret?: string; /** * URL of the webhook */ url: string; } export interface RepositoryCollaboratorsIgnoreTeam { /** * The GitHub team id or the GitHub team slug. */ teamId: string; } 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?: string; /** * The GitHub team id or the GitHub team slug. */ teamId: string; } 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?: string; /** * The user to add to the repository as a collaborator. */ username: string; } export interface RepositoryEnvironmentDeploymentBranchPolicy { /** * Whether only branches that match the specified name patterns can deploy to this environment. */ customBranchPolicies: boolean; /** * Whether only branches with branch protection rules can deploy to this environment. */ protectedBranches: boolean; } 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?: number[]; /** * 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?: number[]; } 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?: string; /** * The custom domain for the repository. This can only be set after the repository has been created. */ cname?: string; /** * Whether the rendered GitHub Pages site has a custom 404 page. */ custom404: boolean; /** * The absolute URL (including scheme) of the rendered GitHub Pages site e.g. `https://username.github.io`. */ htmlUrl: string; /** * The source branch and directory for the rendered Pages site. See GitHub Pages Source below for details. */ source?: outputs.RepositoryPagesSource; /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: string; url: string; } export interface RepositoryPagesSource { /** * The repository branch used to publish the site's source files (e.g., `main` or `gh-pages`). */ branch: string; /** * The repository directory from which the site publishes. Defaults to `/`. Can be `/` or `/docs`. */ path?: string; } 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?: number; /** * The type of actor that can bypass a ruleset. Can be one of: `RepositoryRole`, `Team`, `Integration`, `OrganizationAdmin`, `DeployKey`. */ actorType: string; /** * (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: string; } 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: outputs.RepositoryRulesetConditionsRefName; } export interface RepositoryRulesetConditionsRefName { /** * Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. */ excludes: string[]; /** * 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: string[]; } 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?: outputs.RepositoryRulesetRulesBranchNamePattern; /** * (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?: outputs.RepositoryRulesetRulesCommitAuthorEmailPattern; /** * (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?: outputs.RepositoryRulesetRulesCommitMessagePattern; /** * (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?: outputs.RepositoryRulesetRulesCommitterEmailPattern; /** * (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?: outputs.RepositoryRulesetRulesCopilotCodeReview; /** * (Boolean) Only allow users with bypass permission to create matching refs. */ creation?: boolean; /** * (Boolean) Only allow users with bypass permissions to delete matching refs. */ deletion?: boolean; /** * (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?: outputs.RepositoryRulesetRulesFileExtensionRestriction; /** * (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?: outputs.RepositoryRulesetRulesFilePathRestriction; /** * (Integer) The maximum number of characters allowed in file paths. */ maxFilePathLength?: outputs.RepositoryRulesetRulesMaxFilePathLength; /** * (Integer) The maximum allowed size, in megabytes (MB), of a file. Valid range is 1-100 MB. */ maxFileSize?: outputs.RepositoryRulesetRulesMaxFileSize; /** * (Block List, Max: 1) Merges must be performed via a merge queue. (see below for nested schema) */ mergeQueue?: outputs.RepositoryRulesetRulesMergeQueue; /** * (Boolean) Prevent users with push access from force pushing to branches. */ nonFastForward?: boolean; /** * (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?: outputs.RepositoryRulesetRulesPullRequest; /** * (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?: outputs.RepositoryRulesetRulesRequiredCodeScanning; /** * (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?: outputs.RepositoryRulesetRulesRequiredDeployments; /** * (Boolean) Prevent merge commits from being pushed to matching branches. */ requiredLinearHistory?: boolean; /** * (Boolean) Commits pushed to matching branches must have verified signatures. */ requiredSignatures?: boolean; /** * (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?: outputs.RepositoryRulesetRulesRequiredStatusChecks; /** * (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?: outputs.RepositoryRulesetRulesTagNamePattern; /** * (Boolean) Only allow users with bypass permission to update matching refs. */ update?: boolean; /** * (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?: boolean; } export interface RepositoryRulesetRulesBranchNamePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface RepositoryRulesetRulesCommitAuthorEmailPattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface RepositoryRulesetRulesCommitMessagePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface RepositoryRulesetRulesCommitterEmailPattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } export interface RepositoryRulesetRulesCopilotCodeReview { /** * Copilot automatically reviews draft pull requests before they are marked as ready for review. Defaults to `false`. */ reviewDraftPullRequests?: boolean; /** * Copilot automatically reviews each new push to the pull request. Defaults to `false`. */ reviewOnPush?: boolean; } export interface RepositoryRulesetRulesFileExtensionRestriction { /** * A list of file extensions. */ restrictedFileExtensions: string[]; } export interface RepositoryRulesetRulesFilePathRestriction { /** * The file paths that are restricted from being pushed to the commit graph. */ restrictedFilePaths: string[]; } export interface RepositoryRulesetRulesMaxFilePathLength { /** * The maximum allowed length of a file path. */ maxFilePathLength: number; } export interface RepositoryRulesetRulesMaxFileSize { /** * The maximum allowed size of a file in megabytes (MB). Valid range is 1-100 MB. */ maxFileSize: number; } 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?: number; /** * 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?: string; /** * Limit the number of queued pull requests requesting checks and workflow runs at the same time. Defaults to `5`. */ maxEntriesToBuild?: number; /** * The maximum number of PRs that will be merged together in a group. Defaults to `5`. */ maxEntriesToMerge?: number; /** * Method to use when merging changes from queued pull requests. Can be one of: MERGE, SQUASH, REBASE. Defaults to `MERGE`. */ mergeMethod?: string; /** * The minimum number of PRs that will be merged together in a group. Defaults to `1`. */ minEntriesToMerge?: number; /** * 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?: number; } export interface RepositoryRulesetRulesPullRequest { /** * Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled. */ allowedMergeMethods: string[]; /** * New, reviewable commits pushed will dismiss previous pull request review approvals. Defaults to `false`. */ dismissStaleReviewsOnPush?: boolean; /** * Require an approving review in pull requests that modify files that have a designated code owner. Defaults to `false`. */ requireCodeOwnerReview?: boolean; /** * Whether the most recent reviewable push must be approved by someone other than the person who pushed it. Defaults to `false`. */ requireLastPushApproval?: boolean; /** * The number of approving reviews that are required before a pull request can be merged. Defaults to `0`. */ requiredApprovingReviewCount?: number; /** * All conversations on code must be resolved before a pull request can be merged. Defaults to `false`. */ requiredReviewThreadResolution?: boolean; /** * Require specific reviewers to approve pull requests targeting matching branches. Note: This feature is in beta and subject to change. */ requiredReviewers?: outputs.RepositoryRulesetRulesPullRequestRequiredReviewer[]; } export interface RepositoryRulesetRulesPullRequestRequiredReviewer { /** * File patterns (fnmatch syntax) that this reviewer must approve. */ filePatterns: string[]; /** * Minimum number of approvals required from this reviewer. Set to 0 to make approval optional. */ minimumApprovals: number; /** * The reviewer that must review matching files. */ reviewer: outputs.RepositoryRulesetRulesPullRequestRequiredReviewerReviewer; } export interface RepositoryRulesetRulesPullRequestRequiredReviewerReviewer { /** * The ID of the reviewer that must review. */ id: number; /** * The type of reviewer. Currently only `Team` is supported. */ type: string; } export interface RepositoryRulesetRulesRequiredCodeScanning { /** * Tools that must provide code scanning results for this rule to pass. */ requiredCodeScanningTools: outputs.RepositoryRulesetRulesRequiredCodeScanningRequiredCodeScanningTool[]; } 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: string; /** * 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: string; /** * The name of a code scanning tool */ tool: string; } export interface RepositoryRulesetRulesRequiredDeployments { /** * The environments that must be successfully deployed to before branches can be merged. */ requiredDeploymentEnvironments: string[]; } export interface RepositoryRulesetRulesRequiredStatusChecks { /** * Allow repositories and branches to be created if a check would otherwise prohibit it. */ doNotEnforceOnCreate?: boolean; /** * Status checks that are required. Several can be defined. */ requiredChecks: outputs.RepositoryRulesetRulesRequiredStatusChecksRequiredCheck[]; /** * 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?: boolean; } export interface RepositoryRulesetRulesRequiredStatusChecksRequiredCheck { /** * The status check context name that must be present on the commit. */ context: string; /** * The optional integration ID that this status check must originate from. */ integrationId?: number; } export interface RepositoryRulesetRulesTagNamePattern { /** * (String) The name of the ruleset. */ name?: string; /** * If true, the rule will fail if the pattern matches. */ negate?: boolean; /** * The operator to use for matching. Can be one of: `startsWith`, `endsWith`, `contains`, `regex`. */ operator: string; /** * The pattern to match with. */ pattern: string; } 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?: outputs.RepositorySecurityAndAnalysisAdvancedSecurity; /** * The code security configuration for the repository. See Code Security below for details. */ codeSecurity?: outputs.RepositorySecurityAndAnalysisCodeSecurity; /** * The secret scanning configuration for the repository. See Secret Scanning Configuration below for details. */ secretScanning?: outputs.RepositorySecurityAndAnalysisSecretScanning; /** * The secret scanning ai detection configuration for the repository. See Secret Scanning AI Detection Configuration below for details. */ secretScanningAiDetection?: outputs.RepositorySecurityAndAnalysisSecretScanningAiDetection; /** * The secret scanning non-provider patterns configuration for this repository. See Secret Scanning Non-Provider Patterns Configuration below for more details. */ secretScanningNonProviderPatterns?: outputs.RepositorySecurityAndAnalysisSecretScanningNonProviderPatterns; /** * The secret scanning push protection configuration for the repository. See Secret Scanning Push Protection Configuration below for details. */ secretScanningPushProtection?: outputs.RepositorySecurityAndAnalysisSecretScanningPushProtection; } export interface RepositorySecurityAndAnalysisAdvancedSecurity { /** * Set to `enabled` to enable advanced security features on the repository. Can be `enabled` or `disabled`. */ status: string; } export interface RepositorySecurityAndAnalysisCodeSecurity { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: string; } export interface RepositorySecurityAndAnalysisSecretScanning { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: string; } 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: string; } export interface RepositorySecurityAndAnalysisSecretScanningNonProviderPatterns { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: string; } export interface RepositorySecurityAndAnalysisSecretScanningPushProtection { /** * The GitHub Pages site's build status e.g. `building` or `built`. */ status: string; } 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?: boolean; /** * The GitHub organization or user the template repository is owned by. */ owner: string; /** * The name of the template repository. */ repository: string; } export interface RepositoryWebhookConfiguration { /** * The content type for the payload. Valid values are either `form` or `json`. */ contentType?: string; /** * Insecure SSL boolean toggle. Defaults to `false`. */ insecureSsl?: boolean; /** * The shared secret for the webhook. [See API documentation](https://developer.github.com/v3/repos/hooks/#create-a-hook). */ secret?: string; /** * The URL of the webhook. */ url: string; } export interface TeamMembersMember { /** * The role of the user within the team. * Must be one of `member` or `maintainer`. Defaults to `member`. */ role?: string; /** * The user to add to the team. */ username: string; } export interface TeamSettingsReviewRequestDelegation { /** * The algorithm to use when assigning pull requests to team members. Supported values are ROUND_ROBIN and LOAD_BALANCE. */ algorithm?: string; /** * The number of team members to assign to a pull request. */ memberCount?: number; /** * 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?: boolean; } export interface TeamSyncGroupMappingGroup { /** * The description of the IdP group. */ groupDescription: string; /** * The ID of the IdP group. */ groupId: string; /** * The name of the IdP group. */ groupName: string; } export declare namespace config { interface AppAuth { /** * The GitHub App ID. */ id: string; /** * The GitHub App installation instance ID. */ installationId: string; /** * The GitHub App PEM file contents. */ pemFile: string; } } //# sourceMappingURL=output.d.ts.map