diff --git a/content/rest/orgs/index.md b/content/rest/orgs/index.md index f72a582602..2d7e2e1b80 100644 --- a/content/rest/orgs/index.md +++ b/content/rest/orgs/index.md @@ -15,12 +15,13 @@ versions: topics: - API children: - - /orgs - /blocking - /custom-roles - /members + - /orgs - /outside-collaborators - /personal-access-tokens + - /rules - /security-managers - /webhooks autogenerated: rest diff --git a/content/rest/orgs/rules.md b/content/rest/orgs/rules.md new file mode 100644 index 0000000000..24087437d8 --- /dev/null +++ b/content/rest/orgs/rules.md @@ -0,0 +1,20 @@ +--- +title: Rules +shortTitle: Rules +intro: 'Use the rulesets API to manage rulesets for repositories. Organization rulesets control how people can interact with selected branches and tags in repositories in an organization.' +versions: + fpt: '*' + ghec: '*' +topics: + - API +autogenerated: rest +allowTitleToDifferFromFilename: true +--- + +{% note %} + +**Note:** Rulesets are in public beta and subject to change. + +{% endnote %} + + diff --git a/content/rest/repos/index.md b/content/rest/repos/index.md index acbdfed8bf..6520b6461f 100644 --- a/content/rest/repos/index.md +++ b/content/rest/repos/index.md @@ -1,6 +1,8 @@ --- title: Repositories -intro: 'Use the REST API to create, manage and control the workflow of public and private {% data variables.product.product_name %} repositories.' +intro: >- + Use the REST API to create, manage and control the workflow of public and + private {% data variables.product.product_name %} repositories. allowTitleToDifferFromFilename: true redirect_from: - /v3/repos @@ -13,11 +15,12 @@ versions: topics: - API children: - - /repos - /autolinks - /contents - /forks - /lfs + - /repos + - /rules - /tags autogenerated: rest --- diff --git a/content/rest/repos/rules.md b/content/rest/repos/rules.md new file mode 100644 index 0000000000..5529d5188c --- /dev/null +++ b/content/rest/repos/rules.md @@ -0,0 +1,20 @@ +--- +title: Rules +shortTitle: Rules +intro: 'Use the rulesets API to manage rulesets for repositories. Rulesets control how people can interact with selected branches and tags in a repository.' +versions: + fpt: '*' + ghec: '*' +topics: + - API +autogenerated: rest +allowTitleToDifferFromFilename: true +--- + +{% note %} + +**Note:** Rulesets are in public beta and subject to change. + +{% endnote %} + + diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json index 6cd53282e9..409b6d1822 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json @@ -2544,6 +2544,36 @@ "verb": "get", "requestPath": "/orgs/{org}/public_members/{username}" }, + { + "slug": "get-all-organization-repository-rulesets", + "subcategory": "rules", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets" + }, + { + "slug": "create-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "post", + "requestPath": "/orgs/{org}/rulesets" + }, + { + "slug": "get-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, + { + "slug": "update-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "put", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, + { + "slug": "delete-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "delete", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, { "slug": "list-security-manager-teams", "subcategory": "security-managers", @@ -3290,6 +3320,42 @@ "verb": "get", "requestPath": "/repos/{owner}/{repo}/readme/{dir}" }, + { + "slug": "get-rules-for-a-branch", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rules/branches/{branch}" + }, + { + "slug": "get-all-repository-rulesets", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets" + }, + { + "slug": "create-a-repository-ruleset", + "subcategory": "rules", + "verb": "post", + "requestPath": "/repos/{owner}/{repo}/rulesets" + }, + { + "slug": "get-a-repository-ruleset", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, + { + "slug": "update-a-repository-ruleset", + "subcategory": "rules", + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, + { + "slug": "delete-a-repository-ruleset", + "subcategory": "rules", + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, { "slug": "list-repository-tags", "subcategory": "repos", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json index 9bdb0f3f9e..fc6c2f5d54 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json @@ -2740,6 +2740,36 @@ "verb": "get", "requestPath": "/orgs/{org}/repository-fine-grained-permissions" }, + { + "slug": "get-all-organization-repository-rulesets", + "subcategory": "rules", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets" + }, + { + "slug": "create-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "post", + "requestPath": "/orgs/{org}/rulesets" + }, + { + "slug": "get-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, + { + "slug": "update-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "put", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, + { + "slug": "delete-an-organization-repository-ruleset", + "subcategory": "rules", + "verb": "delete", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}" + }, { "slug": "list-security-manager-teams", "subcategory": "security-managers", @@ -3486,6 +3516,42 @@ "verb": "get", "requestPath": "/repos/{owner}/{repo}/readme/{dir}" }, + { + "slug": "get-rules-for-a-branch", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rules/branches/{branch}" + }, + { + "slug": "get-all-repository-rulesets", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets" + }, + { + "slug": "create-a-repository-ruleset", + "subcategory": "rules", + "verb": "post", + "requestPath": "/repos/{owner}/{repo}/rulesets" + }, + { + "slug": "get-a-repository-ruleset", + "subcategory": "rules", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, + { + "slug": "update-a-repository-ruleset", + "subcategory": "rules", + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, + { + "slug": "delete-a-repository-ruleset", + "subcategory": "rules", + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}" + }, { "slug": "list-repository-tags", "subcategory": "repos", diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 67f720590a..9a98288a96 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "0ab300c12457e24960c4405b2112c2437d6c2260" + "sha": "955d6a6a61c413f2940b977647300f1c609b0ec6" } \ No newline at end of file diff --git a/src/rest/data/client-side-rest-api-redirects.json b/src/rest/data/client-side-rest-api-redirects.json index 0e8f9331d3..8d063b6475 100644 --- a/src/rest/data/client-side-rest-api-redirects.json +++ b/src/rest/data/client-side-rest-api-redirects.json @@ -793,6 +793,13 @@ "/rest/repos#get-a-repository-readme": "/rest/repos/contents#get-a-repository-readme", "/rest/repos#get-a-repository-directory-readme": "/rest/repos/contents#get-a-repository-directory-readme", "/rest/repos#releases": "/rest/repos/releases", + "/rest/repos/rules#get-rules-for-a-branch": "/rest/repos/rules#get-rules-for-a-branch", + "/rest/repos#rules": "/rest/repos/rules", + "/rest/repos/rules#get-repository-rulesets": "/rest/repos/rules#get-repository-rulesets", + "/rest/repos/rules#create-repository-ruleset": "/rest/repos/rules#create-repository-ruleset", + "/rest/repos/rules#get-repository-ruleset": "/rest/repos/rules#get-repository-ruleset", + "/rest/repos/rules#update-repository-ruleset": "/rest/repos/rules#update-repository-ruleset", + "/rest/repos/rules#delete-repository-ruleset": "/rest/repos/rules#delete-repository-ruleset", "/rest/security-advisories/repository-advisories#list-repository-security-advisories": "/rest/security-advisories/repository-advisories#list-repository-security-advisories", "/rest/security-advisories#repository-advisories": "/rest/security-advisories/repository-advisories", "/rest/security-advisories/repository-advisories#create-a-repository-security-advisory": "/rest/security-advisories/repository-advisories#create-a-repository-security-advisory", diff --git a/src/rest/data/fpt-2022-11-28/schema.json b/src/rest/data/fpt-2022-11-28/schema.json index 377303d893..b7463deecb 100644 --- a/src/rest/data/fpt-2022-11-28/schema.json +++ b/src/rest/data/fpt-2022-11-28/schema.json @@ -223332,7 +223332,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -223849,6 +223849,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -225088,7 +225089,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -225605,6 +225606,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -226857,7 +226859,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -366260,6 +366262,4436 @@ ] } ], + "rules": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets", + "title": "Get all organization repository rulesets", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "id": 21, + "name": "super cool ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled" + }, + { + "id": 432, + "name": "Another ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get all the repository rulesets for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/orgs/{org}/rulesets", + "title": "Create an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

", + "isRequired": true + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (evaluate is only available with GitHub Enterprise).

", + "isRequired": true, + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Conditions for a organization ruleset

" + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "201", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Create a repository ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "201", + "description": "

Created

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Get an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get a repository ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "put", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Update an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

" + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (evaluate is only available with GitHub Enterprise).

", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Conditions for a organization ruleset

" + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Update a ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Delete an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "204", + "description": "

Response

" + } + } + ], + "previews": [], + "descriptionHTML": "

Delete a ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "204", + "description": "

No Content

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + } + ], "security-managers": [ { "serverUrl": "https://api.github.com", @@ -481041,6 +485473,5107 @@ ] } ], + "rules": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rules/branches/{branch}", + "title": "Get rules for a branch", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "branch", + "description": "

The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use the GraphQL API.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "branch": "BRANCH" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "type": "commit_message_pattern", + "parameters": { + "operator": "starts_with", + "pattern": "issue" + } + }, + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Returns all rules that apply to the specified branch.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets", + "title": "Get all repository rulesets", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includes_parents", + "description": "

Include rulesets configured at higher levels that apply to this repository

", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "id": 42, + "name": "super cool ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled" + }, + { + "id": 314, + "name": "Another ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get all the rulesets for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/repos/{owner}/{repo}/rulesets", + "title": "Create a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

", + "isRequired": true + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (evaluate is only available with GitHub Enterprise).

", + "isRequired": true, + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "string", + "name": "bypass_mode", + "in": "body", + "description": "

The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.

", + "enum": [ + "none", + "repository", + "organization" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Parameters for a repository ruleset ref name condition

", + "childParamsGroups": [ + { + "type": "object", + "name": "ref_name", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "include", + "description": "

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.

" + }, + { + "type": "array of strings", + "name": "exclude", + "description": "

Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.

" + } + ] + } + ] + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "201", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Create a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "201", + "description": "

Created

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Get a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "includes_parents", + "description": "

Include rulesets configured at higher levels that apply to this repository

", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Update a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

" + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (evaluate is only available with GitHub Enterprise).

", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "string", + "name": "bypass_mode", + "in": "body", + "description": "

The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.

", + "enum": [ + "none", + "repository", + "organization" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Parameters for a repository ruleset ref name condition

", + "childParamsGroups": [ + { + "type": "object", + "name": "ref_name", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "include", + "description": "

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.

" + }, + { + "type": "array of strings", + "name": "exclude", + "description": "

Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.

" + } + ] + } + ] + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page (`evaluate` is only available with GitHub Enterprise).", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Update a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Delete a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "204", + "description": "

Response

" + } + } + ], + "previews": [], + "descriptionHTML": "

Delete a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "204", + "description": "

No Content

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + } + ], "tags": [ { "serverUrl": "https://api.github.com", diff --git a/src/rest/data/ghec-2022-11-28/schema.json b/src/rest/data/ghec-2022-11-28/schema.json index 543cb63bc1..72a91b3696 100644 --- a/src/rest/data/ghec-2022-11-28/schema.json +++ b/src/rest/data/ghec-2022-11-28/schema.json @@ -234797,7 +234797,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -235314,6 +235314,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -236553,7 +236554,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -237070,6 +237071,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -238322,7 +238324,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -383004,6 +383006,4436 @@ ] } ], + "rules": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets", + "title": "Get all organization repository rulesets", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "id": 21, + "name": "super cool ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled" + }, + { + "id": 432, + "name": "Another ruleset", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get all the repository rulesets for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/orgs/{org}/rulesets", + "title": "Create an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

", + "isRequired": true + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.

", + "isRequired": true, + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Conditions for a organization ruleset

" + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "201", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Create a repository ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "201", + "description": "

Created

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Get an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get a repository ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "put", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Update an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

" + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.

", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Conditions for a organization ruleset

" + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 21, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Organization", + "source": "my-org", + "enforcement": "enabled", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + }, + "repository_name": { + "include": [ + "important_repository", + "another_important_repository" + ], + "exclude": [ + "unimportant_repository" + ], + "protected": true + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Update a ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/orgs/{org}/rulesets/{ruleset_id}", + "title": "Delete an organization repository ruleset", + "category": "orgs", + "subcategory": "rules", + "parameters": [ + { + "name": "org", + "description": "

The organization name. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "204", + "description": "

Response

" + } + } + ], + "previews": [], + "descriptionHTML": "

Delete a ruleset for an organization.

", + "statusCodes": [ + { + "httpStatusCode": "204", + "description": "

No Content

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + } + ], "security-managers": [ { "serverUrl": "https://api.github.com", @@ -497749,6 +502181,5107 @@ ] } ], + "rules": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rules/branches/{branch}", + "title": "Get rules for a branch", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "branch", + "description": "

The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use the GraphQL API.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "branch": "BRANCH" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "type": "commit_message_pattern", + "parameters": { + "operator": "starts_with", + "pattern": "issue" + } + }, + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Returns all rules that apply to the specified branch.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets", + "title": "Get all repository rulesets", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "includes_parents", + "description": "

Include rulesets configured at higher levels that apply to this repository

", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": [ + { + "id": 42, + "name": "super cool ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled" + }, + { + "id": 314, + "name": "Another ruleset", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get all the rulesets for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/repos/{owner}/{repo}/rulesets", + "title": "Create a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

", + "isRequired": true + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.

", + "isRequired": true, + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "string", + "name": "bypass_mode", + "in": "body", + "description": "

The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.

", + "enum": [ + "none", + "repository", + "organization" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Parameters for a repository ruleset ref name condition

", + "childParamsGroups": [ + { + "type": "object", + "name": "ref_name", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "include", + "description": "

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.

" + }, + { + "type": "array of strings", + "name": "exclude", + "description": "

Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.

" + } + ] + } + ] + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "owner": "OWNER", + "repo": "REPO" + } + }, + "response": { + "statusCode": "201", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Create a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "201", + "description": "

Created

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Get a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "includes_parents", + "description": "

Include rulesets configured at higher levels that apply to this repository

", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Get a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "put", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Update a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "

The name of the ruleset.

" + }, + { + "type": "string", + "name": "target", + "in": "body", + "description": "

The target of the ruleset.

", + "enum": [ + "branch", + "tag" + ] + }, + { + "type": "string", + "name": "enforcement", + "in": "body", + "description": "

The enforcement level of the ruleset. evaluate allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.

", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + { + "type": "string", + "name": "bypass_mode", + "in": "body", + "description": "

The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.

", + "enum": [ + "none", + "repository", + "organization" + ] + }, + { + "type": "array of objects", + "name": "bypass_actors", + "in": "body", + "description": "

The actors that can bypass the rules in this ruleset

", + "childParamsGroups": [ + { + "type": "integer", + "name": "actor_id", + "description": "

The ID of the actor that can bypass a ruleset

" + }, + { + "type": "string", + "name": "actor_type", + "description": "

The type of actor that can bypass a ruleset

", + "enum": [ + "Team", + "Integration" + ] + } + ] + }, + { + "type": "object", + "name": "conditions", + "in": "body", + "description": "

Parameters for a repository ruleset ref name condition

", + "childParamsGroups": [ + { + "type": "object", + "name": "ref_name", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "include", + "description": "

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.

" + }, + { + "type": "array of strings", + "name": "exclude", + "description": "

Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.

" + } + ] + } + ] + }, + { + "type": "array of objects", + "name": "rules", + "in": "body", + "description": "

An array of rules within the ruleset.

", + "childParamsGroups": [ + { + "type": "object", + "name": "creation", + "description": "

Parameters to be used for the creation rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "creation" + ] + } + ] + }, + { + "type": "object", + "name": "update", + "description": "

Parameters to be used for the update rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "update" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "update_allows_fetch_and_merge", + "description": "

Branch can pull changes from its upstream repository

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "deletion", + "description": "

Parameters to be used for the deletion rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "deletion" + ] + } + ] + }, + { + "type": "object", + "name": "required_linear_history", + "description": "

Parameters to be used for the required_linear_history rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_linear_history" + ] + } + ] + }, + { + "type": "object", + "name": "required_deployments", + "description": "

Parameters to be used for the required_deployments rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_deployments" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of strings", + "name": "required_deployment_environments", + "description": "

The environments that must be successfully deployed to before branches can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_signatures", + "description": "

Parameters to be used for the required_signatures rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_signatures" + ] + } + ] + }, + { + "type": "object", + "name": "pull_request", + "description": "

Parameters to be used for the pull_request rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "pull_request" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "boolean", + "name": "dismiss_stale_reviews_on_push", + "description": "

New, reviewable commits pushed will dismiss previous pull request review approvals.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_code_owner_review", + "description": "

Require an approving review in pull requests that modify files that have a designated code owner.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "require_last_push_approval", + "description": "

Whether the most recent reviewable push must be approved by someone other than the person who pushed it.

", + "isRequired": true + }, + { + "type": "integer", + "name": "required_approving_review_count", + "description": "

The number of approving reviews that are required before a pull request can be merged.

", + "isRequired": true + }, + { + "type": "boolean", + "name": "required_review_thread_resolution", + "description": "

All conversations on code must be resolved before a pull request can be merged.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "required_status_checks", + "description": "

Parameters to be used for the required_status_checks rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "required_status_checks" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "array of objects", + "name": "required_status_checks", + "description": "

Status checks that are required.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "context", + "description": "

The status check context name that must be present on the commit.

", + "isRequired": true + }, + { + "type": "integer", + "name": "integration_id", + "description": "

The optional integration ID that this status check must originate from.

" + } + ] + }, + { + "type": "boolean", + "name": "strict_required_status_checks_policy", + "description": "

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.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "non_fast_forward", + "description": "

Parameters to be used for the non_fast_forward rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "non_fast_forward" + ] + } + ] + }, + { + "type": "object", + "name": "commit_message_pattern", + "description": "

Parameters to be used for the commit_message_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_message_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "commit_author_email_pattern", + "description": "

Parameters to be used for the commit_author_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "commit_author_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "committer_email_pattern", + "description": "

Parameters to be used for the committer_email_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "committer_email_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "branch_name_pattern", + "description": "

Parameters to be used for the branch_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "branch_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "object", + "name": "tag_name_pattern", + "description": "

Parameters to be used for the tag_name_pattern rule

", + "isRequired": [ + "type" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true, + "enum": [ + "tag_name_pattern" + ] + }, + { + "type": "object", + "name": "parameters", + "description": "", + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

How this rule will appear to users.

" + }, + { + "type": "boolean", + "name": "negate", + "description": "

If true, the rule will fail if the pattern matches.

" + }, + { + "type": "string", + "name": "operator", + "description": "

The operator to use for matching.

", + "isRequired": true, + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + { + "type": "string", + "name": "pattern", + "description": "

The pattern to match with.

", + "isRequired": true + } + ] + } + ] + } + ], + "oneOfObject": true + } + ], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

Response

", + "example": { + "id": 42, + "name": "super cool ruleset", + "target": "branch", + "source_type": "Repository", + "source": "monalisa/my-repo", + "enforcement": "enabled", + "bypass_mode": "repository", + "bypass_actors": [ + { + "actor_id": 234, + "actor_type": "Team" + } + ], + "conditions": { + "ref_name": { + "include": [ + "refs/heads/main", + "refs/heads/master" + ], + "exclude": [ + "refs/heads/dev*" + ] + } + }, + "rules": [ + { + "type": "commit_author_email_pattern", + "parameters": { + "operator": "contains", + "pattern": "github" + } + } + ] + }, + "schema": { + "title": "Repository ruleset", + "type": "object", + "description": "A set of rules to apply when specified conditions are met.", + "required": [ + "id", + "name", + "source", + "enforcement" + ], + "properties": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { + "type": "string", + "description": "The name of the ruleset" + }, + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag" + ] + }, + "source_type": { + "type": "string", + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization" + ] + }, + "source": { + "type": "string", + "description": "The name of the source" + }, + "enforcement": { + "type": "string", + "description": "The enforcement level of the ruleset. `evaluate` allows admins to test rules before enforcing them. Admins can view insights on the Rule Insights page.", + "enum": [ + "disabled", + "active", + "evaluate" + ] + }, + "bypass_mode": { + "type": "string", + "description": "The permission level required to bypass this ruleset. \"repository\" allows those with bypass permission at the repository level to bypass. \"organization\" allows those with bypass permission at the organization level to bypass. \"none\" prevents anyone from bypassing.", + "enum": [ + "none", + "repository", + "organization" + ] + }, + "bypass_actors": { + "type": "array", + "description": "The actors that can bypass the rules in this ruleset", + "items": { + "title": "Repository Ruleset Bypass Actor", + "type": "object", + "description": "An actor that can bypass rules in a ruleset", + "properties": { + "actor_id": { + "type": "integer", + "description": "The ID of the actor that can bypass a ruleset" + }, + "actor_type": { + "type": "string", + "enum": [ + "Team", + "Integration" + ], + "description": "The type of actor that can bypass a ruleset" + } + } + } + }, + "node_id": { + "type": "string" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } + } + } + }, + "conditions": { + "anyOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Organization ruleset conditions", + "type": "object", + "description": "Conditions for a organization ruleset", + "allOf": [ + { + "title": "Repository ruleset conditions for ref names", + "type": "object", + "description": "Parameters for a repository ruleset ref name condition", + "properties": { + "ref_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + } + } + } + } + }, + { + "title": "Repository ruleset conditions for repository names", + "type": "object", + "description": "Parameters for a repository name condition", + "properties": { + "repository_name": { + "type": "object", + "properties": { + "include": { + "type": "array", + "description": "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.", + "items": { + "type": "string" + } + }, + "exclude": { + "type": "array", + "description": "Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match.", + "items": { + "type": "string" + } + }, + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } + } + } + } + } + ] + } + ] + }, + "rules": { + "type": "array", + "items": { + "title": "Repository Rule", + "type": "object", + "description": "A repository rule.", + "oneOf": [ + { + "title": "creation", + "description": "Parameters to be used for the creation rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "creation" + ] + } + } + }, + { + "title": "update", + "description": "Parameters to be used for the update rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update" + ] + }, + "parameters": { + "type": "object", + "properties": { + "update_allows_fetch_and_merge": { + "type": "boolean", + "description": "Branch can pull changes from its upstream repository" + } + }, + "required": [ + "update_allows_fetch_and_merge" + ] + } + } + }, + { + "title": "deletion", + "description": "Parameters to be used for the deletion rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "deletion" + ] + } + } + }, + { + "title": "required_linear_history", + "description": "Parameters to be used for the required_linear_history rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_linear_history" + ] + } + } + }, + { + "title": "required_deployments", + "description": "Parameters to be used for the required_deployments rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_deployments" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } + } + }, + "required": [ + "required_deployment_environments" + ] + } + } + }, + { + "title": "required_signatures", + "description": "Parameters to be used for the required_signatures rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_signatures" + ] + } + } + }, + { + "title": "pull_request", + "description": "Parameters to be used for the pull_request rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pull_request" + ] + }, + "parameters": { + "type": "object", + "properties": { + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." + }, + "require_code_owner_review": { + "type": "boolean", + "description": "Require an approving review in pull requests that modify files that have a designated code owner." + }, + "require_last_push_approval": { + "type": "boolean", + "description": "Whether the most recent reviewable push must be approved by someone other than the person who pushed it." + }, + "required_approving_review_count": { + "type": "integer", + "description": "The number of approving reviews that are required before a pull request can be merged.", + "minimum": 0, + "maximum": 10 + }, + "required_review_thread_resolution": { + "type": "boolean", + "description": "All conversations on code must be resolved before a pull request can be merged." + } + }, + "required": [ + "dismiss_stale_reviews_on_push", + "require_code_owner_review", + "require_last_push_approval", + "required_approving_review_count", + "required_review_thread_resolution" + ] + } + } + }, + { + "title": "required_status_checks", + "description": "Parameters to be used for the required_status_checks rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { + "type": "object", + "properties": { + "required_status_checks": { + "type": "array", + "description": "Status checks that are required.", + "items": { + "title": "StatusCheckConfiguration", + "description": "Required status check", + "type": "object", + "properties": { + "context": { + "type": "string", + "description": "The status check context name that must be present on the commit." + }, + "integration_id": { + "type": "integer", + "description": "The optional integration ID that this status check must originate from." + } + }, + "required": [ + "context" + ] + } + }, + "strict_required_status_checks_policy": { + "type": "boolean", + "description": "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." + } + }, + "required": [ + "required_status_checks", + "strict_required_status_checks_policy" + ] + } + } + }, + { + "title": "non_fast_forward", + "description": "Parameters to be used for the non_fast_forward rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] + } + } + }, + { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_message_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "commit_author_email_pattern", + "description": "Parameters to be used for the commit_author_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "commit_author_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "committer_email_pattern", + "description": "Parameters to be used for the committer_email_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "committer_email_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "branch_name_pattern", + "description": "Parameters to be used for the branch_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + }, + { + "title": "tag_name_pattern", + "description": "Parameters to be used for the tag_name_pattern rule", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "tag_name_pattern" + ] + }, + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "How this rule will appear to users." + }, + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { + "type": "string", + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] + }, + "pattern": { + "type": "string", + "description": "The pattern to match with." + } + }, + "required": [ + "operator", + "pattern" + ] + } + } + } + ] + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

Update a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

OK

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/repos/{owner}/{repo}/rulesets/{ruleset_id}", + "title": "Delete a repository ruleset", + "category": "repos", + "subcategory": "rules", + "parameters": [ + { + "name": "owner", + "description": "

The account owner of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "description": "

The name of the repository. The name is not case sensitive.

", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ruleset_id", + "description": "

The ID of the ruleset.

", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "enabledForGitHubApps": true, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "owner": "OWNER", + "repo": "REPO", + "ruleset_id": "RULESET_ID" + } + }, + "response": { + "statusCode": "204", + "description": "

Response

" + } + } + ], + "previews": [], + "descriptionHTML": "

Delete a ruleset for a repository.

", + "statusCodes": [ + { + "httpStatusCode": "204", + "description": "

No Content

" + }, + { + "httpStatusCode": "404", + "description": "

Resource not found

" + }, + { + "httpStatusCode": "500", + "description": "

Internal Error

" + } + ] + } + ], "tags": [ { "serverUrl": "https://api.github.com", diff --git a/src/rest/data/ghes-3.8/schema.json b/src/rest/data/ghes-3.8/schema.json index 08d85e297b..34916ba55a 100644 --- a/src/rest/data/ghes-3.8/schema.json +++ b/src/rest/data/ghes-3.8/schema.json @@ -189734,7 +189734,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -190251,6 +190251,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -191490,7 +191491,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } @@ -192007,6 +192008,7 @@ "description": "The state of the Dependabot alert.", "readOnly": true, "enum": [ + "auto_dismissed", "dismissed", "fixed", "open" @@ -193259,7 +193261,7 @@ { "name": "state", "in": "query", - "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: dismissed, fixed, open

", + "description": "

A comma-separated list of states. If specified, only alerts with these states will be returned.

\n

Can be: auto_dismissed, dismissed, fixed, open

", "schema": { "type": "string" } diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 5f43c8bc17..706e3443c1 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -30,5 +30,5 @@ ] } }, - "sha": "0ab300c12457e24960c4405b2112c2437d6c2260" + "sha": "955d6a6a61c413f2940b977647300f1c609b0ec6" } \ No newline at end of file diff --git a/src/webhooks/data/fpt/schema.json b/src/webhooks/data/fpt/schema.json index f0eeda3fc2..9bf7b51782 100644 --- a/src/webhooks/data/fpt/schema.json +++ b/src/webhooks/data/fpt/schema.json @@ -15370,8 +15370,8 @@ "action": "auto_dismissed", "category": "dependabot_alert" }, - "reopened": { - "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "auto_reopened": { + "descriptionHtml": "

A Dependabot alert was automatically reopened.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15381,7 +15381,6 @@ "description": "", "isRequired": true, "enum": [ - "reopened", "auto_reopened" ], "childParamsGroups": [] @@ -15950,7 +15949,7 @@ "organization", "app" ], - "action": "reopened", + "action": "auto_reopened", "category": "dependabot_alert" }, "created": { @@ -18280,6 +18279,588 @@ ], "action": "reintroduced", "category": "dependabot_alert" + }, + "reopened": { + "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", + "bodyParameters": [ + { + "type": "string", + "name": "action", + "in": "body", + "description": "", + "isRequired": true, + "enum": [ + "reopened" + ], + "childParamsGroups": [] + }, + { + "type": "object", + "name": "alert", + "in": "body", + "description": "

A Dependabot alert.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "integer", + "name": "number", + "description": "

The security alert number.

", + "isRequired": true + }, + { + "type": "string", + "name": "state", + "description": "

The state of the Dependabot alert.

", + "isRequired": true, + "enum": [ + "auto_dismissed", + "dismissed", + "fixed", + "open" + ] + }, + { + "type": "object", + "name": "dependency", + "description": "

Details for the vulnerable dependency.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "manifest_path", + "description": "

The full path to the dependency manifest file, relative to the root of the repository.

" + }, + { + "type": "string or null", + "name": "scope", + "description": "

The execution scope of the vulnerable dependency.

", + "enum": [ + "development", + "runtime", + null + ] + } + ] + }, + { + "type": "object", + "name": "security_advisory", + "description": "

Details for the GitHub Security Advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ghsa_id", + "description": "

The unique GitHub Security Advisory ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "cve_id", + "description": "

The unique CVE ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "summary", + "description": "

A short, plain text summary of the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "description", + "description": "

A long-form Markdown-supported description of the advisory.

", + "isRequired": true + }, + { + "type": "array of objects", + "name": "vulnerabilities", + "description": "

Vulnerable version range information for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the advisory.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "object", + "name": "cvss", + "description": "

Details for the advisory pertaining to the Common Vulnerability Scoring System.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "number", + "name": "score", + "description": "

The overall CVSS score of the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "vector_string", + "description": "

The full CVSS vector string for the advisory.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "cwes", + "description": "

Details for the advisory pertaining to Common Weakness Enumeration.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "cwe_id", + "description": "

The unique CWE ID.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The short, plain text name of the CWE.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "identifiers", + "description": "

Values that identify this advisory among security information sources.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "

The type of advisory identifier.

", + "isRequired": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + { + "type": "string", + "name": "value", + "description": "

The value of the advisory identifer.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "references", + "description": "

Links to additional advisory information.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "url", + "description": "

The URL of the reference.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "published_at", + "description": "

The time that the advisory was published in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the advisory was last modified in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "withdrawn_at", + "description": "

The time that the advisory was withdrawn in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "security_vulnerability", + "description": "

Details pertaining to one vulnerable version range for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "url", + "description": "

The REST API URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "

The GitHub URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "created_at", + "description": "

The time that the alert was created in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the alert was last updated in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "dismissed_at", + "description": "

The time that the alert was dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "object", + "name": "dismissed_by", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string or null", + "name": "name", + "description": "" + }, + { + "type": "string or null", + "name": "email", + "description": "" + }, + { + "type": "string", + "name": "login", + "description": "", + "isRequired": true + }, + { + "type": "integer", + "name": "id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "node_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "avatar_url", + "description": "", + "isRequired": true + }, + { + "type": "string or null", + "name": "gravatar_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "followers_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "following_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "gists_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "subscriptions_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "organizations_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "repos_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "received_events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true + }, + { + "type": "boolean", + "name": "site_admin", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_at", + "description": "" + } + ] + }, + { + "type": "string or null", + "name": "dismissed_reason", + "description": "

The reason that the alert was dismissed.

", + "isRequired": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + { + "type": "string or null", + "name": "dismissed_comment", + "description": "

An optional comment associated with the alert's dismissal.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "fixed_at", + "description": "

The time that the alert was no longer detected and was considered fixed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "auto_dismissed_at", + "description": "

The time that the alert was auto-dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

" + } + ] + }, + { + "type": "object", + "name": "installation", + "in": "body", + "description": "

The GitHub App installation. This property is included when the event is configured for and sent to a GitHub App.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "organization", + "in": "body", + "description": "

A GitHub organization.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "enterprise", + "in": "body", + "description": "

An enterprise on GitHub.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "repository", + "in": "body", + "description": "

A repository on GitHub.

", + "isRequired": true, + "childParamsGroups": [] + }, + { + "type": "object", + "name": "sender", + "in": "body", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [] + } + ], + "availability": [ + "repository", + "organization", + "app" + ], + "action": "reopened", + "category": "dependabot_alert" } }, "deploy_key": { diff --git a/src/webhooks/data/ghae/schema.json b/src/webhooks/data/ghae/schema.json index da953c8479..5a544e7ec1 100644 --- a/src/webhooks/data/ghae/schema.json +++ b/src/webhooks/data/ghae/schema.json @@ -15150,8 +15150,8 @@ "action": "auto_dismissed", "category": "dependabot_alert" }, - "reopened": { - "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "auto_reopened": { + "descriptionHtml": "

A Dependabot alert was automatically reopened.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15161,7 +15161,6 @@ "description": "", "isRequired": true, "enum": [ - "reopened", "auto_reopened" ], "childParamsGroups": [] @@ -15730,7 +15729,7 @@ "organization", "app" ], - "action": "reopened", + "action": "auto_reopened", "category": "dependabot_alert" }, "created": { @@ -18060,6 +18059,588 @@ ], "action": "reintroduced", "category": "dependabot_alert" + }, + "reopened": { + "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", + "bodyParameters": [ + { + "type": "string", + "name": "action", + "in": "body", + "description": "", + "isRequired": true, + "enum": [ + "reopened" + ], + "childParamsGroups": [] + }, + { + "type": "object", + "name": "alert", + "in": "body", + "description": "

A Dependabot alert.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "integer", + "name": "number", + "description": "

The security alert number.

", + "isRequired": true + }, + { + "type": "string", + "name": "state", + "description": "

The state of the Dependabot alert.

", + "isRequired": true, + "enum": [ + "auto_dismissed", + "dismissed", + "fixed", + "open" + ] + }, + { + "type": "object", + "name": "dependency", + "description": "

Details for the vulnerable dependency.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "manifest_path", + "description": "

The full path to the dependency manifest file, relative to the root of the repository.

" + }, + { + "type": "string or null", + "name": "scope", + "description": "

The execution scope of the vulnerable dependency.

", + "enum": [ + "development", + "runtime", + null + ] + } + ] + }, + { + "type": "object", + "name": "security_advisory", + "description": "

Details for the GitHub Security Advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ghsa_id", + "description": "

The unique GitHub Security Advisory ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "cve_id", + "description": "

The unique CVE ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "summary", + "description": "

A short, plain text summary of the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "description", + "description": "

A long-form Markdown-supported description of the advisory.

", + "isRequired": true + }, + { + "type": "array of objects", + "name": "vulnerabilities", + "description": "

Vulnerable version range information for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the advisory.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "object", + "name": "cvss", + "description": "

Details for the advisory pertaining to the Common Vulnerability Scoring System.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "number", + "name": "score", + "description": "

The overall CVSS score of the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "vector_string", + "description": "

The full CVSS vector string for the advisory.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "cwes", + "description": "

Details for the advisory pertaining to Common Weakness Enumeration.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "cwe_id", + "description": "

The unique CWE ID.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The short, plain text name of the CWE.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "identifiers", + "description": "

Values that identify this advisory among security information sources.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "

The type of advisory identifier.

", + "isRequired": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + { + "type": "string", + "name": "value", + "description": "

The value of the advisory identifer.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "references", + "description": "

Links to additional advisory information.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "url", + "description": "

The URL of the reference.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "published_at", + "description": "

The time that the advisory was published in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the advisory was last modified in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "withdrawn_at", + "description": "

The time that the advisory was withdrawn in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "security_vulnerability", + "description": "

Details pertaining to one vulnerable version range for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "url", + "description": "

The REST API URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "

The GitHub URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "created_at", + "description": "

The time that the alert was created in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the alert was last updated in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "dismissed_at", + "description": "

The time that the alert was dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "object", + "name": "dismissed_by", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string or null", + "name": "name", + "description": "" + }, + { + "type": "string or null", + "name": "email", + "description": "" + }, + { + "type": "string", + "name": "login", + "description": "", + "isRequired": true + }, + { + "type": "integer", + "name": "id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "node_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "avatar_url", + "description": "", + "isRequired": true + }, + { + "type": "string or null", + "name": "gravatar_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "followers_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "following_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "gists_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "subscriptions_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "organizations_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "repos_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "received_events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true + }, + { + "type": "boolean", + "name": "site_admin", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_at", + "description": "" + } + ] + }, + { + "type": "string or null", + "name": "dismissed_reason", + "description": "

The reason that the alert was dismissed.

", + "isRequired": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + { + "type": "string or null", + "name": "dismissed_comment", + "description": "

An optional comment associated with the alert's dismissal.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "fixed_at", + "description": "

The time that the alert was no longer detected and was considered fixed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "auto_dismissed_at", + "description": "

The time that the alert was auto-dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

" + } + ] + }, + { + "type": "object", + "name": "installation", + "in": "body", + "description": "

The GitHub App installation. This property is included when the event is configured for and sent to a GitHub App.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "organization", + "in": "body", + "description": "

A GitHub organization.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "enterprise", + "in": "body", + "description": "

An enterprise on GitHub.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "repository", + "in": "body", + "description": "

A repository on GitHub.

", + "isRequired": true, + "childParamsGroups": [] + }, + { + "type": "object", + "name": "sender", + "in": "body", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [] + } + ], + "availability": [ + "repository", + "organization", + "app" + ], + "action": "reopened", + "category": "dependabot_alert" } }, "deploy_key": { diff --git a/src/webhooks/data/ghec/schema.json b/src/webhooks/data/ghec/schema.json index 8c57d3a728..968bc46cd8 100644 --- a/src/webhooks/data/ghec/schema.json +++ b/src/webhooks/data/ghec/schema.json @@ -15370,8 +15370,8 @@ "action": "auto_dismissed", "category": "dependabot_alert" }, - "reopened": { - "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "auto_reopened": { + "descriptionHtml": "

A Dependabot alert was automatically reopened.

", "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", "bodyParameters": [ { @@ -15381,7 +15381,6 @@ "description": "", "isRequired": true, "enum": [ - "reopened", "auto_reopened" ], "childParamsGroups": [] @@ -15950,7 +15949,7 @@ "organization", "app" ], - "action": "reopened", + "action": "auto_reopened", "category": "dependabot_alert" }, "created": { @@ -18280,6 +18279,588 @@ ], "action": "reintroduced", "category": "dependabot_alert" + }, + "reopened": { + "descriptionHtml": "

A Dependabot alert was manually reopened.

", + "summaryHtml": "

This event occurs when there is activity relating to Dependabot alerts.

\n

For more information about Dependabot alerts, see \"About Dependabot alerts.\" For information about the API to manage Dependabot alerts, see \"Dependabot alerts\" in the REST API documentation.

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Dependabot alerts\" repository permission.

\n

Note: Webhook events for Dependabot alerts are currently in beta and subject to change.

", + "bodyParameters": [ + { + "type": "string", + "name": "action", + "in": "body", + "description": "", + "isRequired": true, + "enum": [ + "reopened" + ], + "childParamsGroups": [] + }, + { + "type": "object", + "name": "alert", + "in": "body", + "description": "

A Dependabot alert.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "integer", + "name": "number", + "description": "

The security alert number.

", + "isRequired": true + }, + { + "type": "string", + "name": "state", + "description": "

The state of the Dependabot alert.

", + "isRequired": true, + "enum": [ + "auto_dismissed", + "dismissed", + "fixed", + "open" + ] + }, + { + "type": "object", + "name": "dependency", + "description": "

Details for the vulnerable dependency.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "manifest_path", + "description": "

The full path to the dependency manifest file, relative to the root of the repository.

" + }, + { + "type": "string or null", + "name": "scope", + "description": "

The execution scope of the vulnerable dependency.

", + "enum": [ + "development", + "runtime", + null + ] + } + ] + }, + { + "type": "object", + "name": "security_advisory", + "description": "

Details for the GitHub Security Advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ghsa_id", + "description": "

The unique GitHub Security Advisory ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "cve_id", + "description": "

The unique CVE ID assigned to the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "summary", + "description": "

A short, plain text summary of the advisory.

", + "isRequired": true + }, + { + "type": "string", + "name": "description", + "description": "

A long-form Markdown-supported description of the advisory.

", + "isRequired": true + }, + { + "type": "array of objects", + "name": "vulnerabilities", + "description": "

Vulnerable version range information for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the advisory.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "object", + "name": "cvss", + "description": "

Details for the advisory pertaining to the Common Vulnerability Scoring System.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "number", + "name": "score", + "description": "

The overall CVSS score of the advisory.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "vector_string", + "description": "

The full CVSS vector string for the advisory.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "cwes", + "description": "

Details for the advisory pertaining to Common Weakness Enumeration.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "cwe_id", + "description": "

The unique CWE ID.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The short, plain text name of the CWE.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "identifiers", + "description": "

Values that identify this advisory among security information sources.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "type", + "description": "

The type of advisory identifier.

", + "isRequired": true, + "enum": [ + "CVE", + "GHSA" + ] + }, + { + "type": "string", + "name": "value", + "description": "

The value of the advisory identifer.

", + "isRequired": true + } + ] + }, + { + "type": "array of objects", + "name": "references", + "description": "

Links to additional advisory information.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "url", + "description": "

The URL of the reference.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "published_at", + "description": "

The time that the advisory was published in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the advisory was last modified in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "withdrawn_at", + "description": "

The time that the advisory was withdrawn in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "security_vulnerability", + "description": "

Details pertaining to one vulnerable version range for the advisory.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "package", + "description": "

Details for the vulnerable package.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "ecosystem", + "description": "

The package's language or package management ecosystem.

", + "isRequired": true + }, + { + "type": "string", + "name": "name", + "description": "

The unique package name within its ecosystem.

", + "isRequired": true + } + ] + }, + { + "type": "string", + "name": "severity", + "description": "

The severity of the vulnerability.

", + "isRequired": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] + }, + { + "type": "string", + "name": "vulnerable_version_range", + "description": "

Conditions that identify vulnerable versions of this vulnerability's package.

", + "isRequired": true + }, + { + "type": "object or null", + "name": "first_patched_version", + "description": "

Details pertaining to the package version that patches this vulnerability.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "identifier", + "description": "

The package version that patches this vulnerability.

", + "isRequired": true + } + ] + } + ] + }, + { + "type": "string", + "name": "url", + "description": "

The REST API URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "

The GitHub URL of the alert resource.

", + "isRequired": true + }, + { + "type": "string", + "name": "created_at", + "description": "

The time that the alert was created in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string", + "name": "updated_at", + "description": "

The time that the alert was last updated in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "dismissed_at", + "description": "

The time that the alert was dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "object", + "name": "dismissed_by", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string or null", + "name": "name", + "description": "" + }, + { + "type": "string or null", + "name": "email", + "description": "" + }, + { + "type": "string", + "name": "login", + "description": "", + "isRequired": true + }, + { + "type": "integer", + "name": "id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "node_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "avatar_url", + "description": "", + "isRequired": true + }, + { + "type": "string or null", + "name": "gravatar_id", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "html_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "followers_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "following_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "gists_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "subscriptions_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "organizations_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "repos_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "received_events_url", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "type", + "description": "", + "isRequired": true + }, + { + "type": "boolean", + "name": "site_admin", + "description": "", + "isRequired": true + }, + { + "type": "string", + "name": "starred_at", + "description": "" + } + ] + }, + { + "type": "string or null", + "name": "dismissed_reason", + "description": "

The reason that the alert was dismissed.

", + "isRequired": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk", + null + ] + }, + { + "type": "string or null", + "name": "dismissed_comment", + "description": "

An optional comment associated with the alert's dismissal.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "fixed_at", + "description": "

The time that the alert was no longer detected and was considered fixed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

", + "isRequired": true + }, + { + "type": "string or null", + "name": "auto_dismissed_at", + "description": "

The time that the alert was auto-dismissed in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

" + } + ] + }, + { + "type": "object", + "name": "installation", + "in": "body", + "description": "

The GitHub App installation. This property is included when the event is configured for and sent to a GitHub App.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "organization", + "in": "body", + "description": "

A GitHub organization.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "enterprise", + "in": "body", + "description": "

An enterprise on GitHub.

", + "childParamsGroups": [] + }, + { + "type": "object", + "name": "repository", + "in": "body", + "description": "

A repository on GitHub.

", + "isRequired": true, + "childParamsGroups": [] + }, + { + "type": "object", + "name": "sender", + "in": "body", + "description": "

A GitHub user.

", + "isRequired": true, + "childParamsGroups": [] + } + ], + "availability": [ + "repository", + "organization", + "app" + ], + "action": "reopened", + "category": "dependabot_alert" } }, "deploy_key": { diff --git a/src/webhooks/data/ghes-3.7/schema.json b/src/webhooks/data/ghes-3.7/schema.json index 86b179788d..9488c054ac 100644 --- a/src/webhooks/data/ghes-3.7/schema.json +++ b/src/webhooks/data/ghes-3.7/schema.json @@ -16985,8 +16985,7 @@ "description": "", "isRequired": true, "enum": [ - "reopened", - "auto_reopened" + "reopened" ], "childParamsGroups": [] }, diff --git a/src/webhooks/data/ghes-3.8/schema.json b/src/webhooks/data/ghes-3.8/schema.json index 75634d81ca..03ec20ba9f 100644 --- a/src/webhooks/data/ghes-3.8/schema.json +++ b/src/webhooks/data/ghes-3.8/schema.json @@ -17205,8 +17205,7 @@ "description": "", "isRequired": true, "enum": [ - "reopened", - "auto_reopened" + "reopened" ], "childParamsGroups": [] }, diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index 67f720590a..9a98288a96 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "0ab300c12457e24960c4405b2112c2437d6c2260" + "sha": "955d6a6a61c413f2940b977647300f1c609b0ec6" } \ No newline at end of file