diff --git a/public/api-schemas.json b/public/api-schemas.json index 35dbb3a5fb..98cd49c412 100644 --- a/public/api-schemas.json +++ b/public/api-schemas.json @@ -5015,7 +5015,7 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/search/tests": { + "/ci/{owner}/repositories/{repository}/search/tests": { "get": { "tags": [ "test_insights" @@ -5025,39 +5025,39 @@ "operationId": "ci-search-tests", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ { - "name": "repository_name", + "name": "owner", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" + "maxLength": 40, + "pattern": "^[a-zA-Z0-9\\-]+$", + "description": "The owner of the repository", + "title": "Owner" }, - "description": "The name of the repository" + "description": "The owner of the repository" }, { - "name": "owner", + "name": "repository", "in": "path", "required": true, "schema": { "type": "string", "minLength": 1, - "maxLength": 40, - "pattern": "^[a-zA-Z0-9\\-]+$", - "description": "The owner of the repository", - "title": "Owner" + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" }, - "description": "The owner of the repository" + "description": "The name of the repository" }, { "name": "test_name", @@ -5456,36 +5456,23 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/tests/{test_id}": { + "/ci/{owner}/repositories/{repository}/tests/{test_id}": { "get": { "tags": [ "test_insights" ], "summary": "Get detailed information about a test", "description": "Get detailed information about a test.", - "operationId": "get_test_details_ci__owner__repositories__repository_name__tests__test_id__get", + "operationId": "get_test_details_ci__owner__repositories__repository__tests__test_id__get", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ - { - "name": "repository_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" - }, - "description": "The name of the repository" - }, { "name": "test_id", "in": "path", @@ -5511,6 +5498,19 @@ "title": "Owner" }, "description": "The owner of the repository" + }, + { + "name": "repository", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" + }, + "description": "The name of the repository" } ], "responses": { @@ -5539,7 +5539,7 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/tests/{test_id}/stats/{stat}": { + "/ci/{owner}/repositories/{repository}/tests/{test_id}/stats/{stat}": { "get": { "tags": [ "test_insights" @@ -5549,26 +5549,13 @@ "operationId": "ci-test-stats", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ - { - "name": "repository_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" - }, - "description": "The name of the repository" - }, { "name": "test_id", "in": "path", @@ -5610,6 +5597,19 @@ }, "description": "The owner of the repository" }, + { + "name": "repository", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" + }, + "description": "The name of the repository" + }, { "name": "start", "in": "query", @@ -5692,7 +5692,7 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/tests/{test_id}/failures": { + "/ci/{owner}/repositories/{repository}/tests/{test_id}/failures": { "get": { "tags": [ "test_insights" @@ -5702,26 +5702,13 @@ "operationId": "ci-test-failures", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ - { - "name": "repository_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" - }, - "description": "The name of the repository" - }, { "name": "test_id", "in": "path", @@ -5747,6 +5734,19 @@ "title": "Owner" }, "description": "The owner of the repository" + }, + { + "name": "repository", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" + }, + "description": "The name of the repository" } ], "responses": { @@ -5775,7 +5775,7 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/tests/{test_id}/failures/{failure_id}": { + "/ci/{owner}/repositories/{repository}/tests/{test_id}/failures/{failure_id}": { "get": { "tags": [ "test_insights" @@ -5785,26 +5785,13 @@ "operationId": "ci-test-failure", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ - { - "name": "repository_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" - }, - "description": "The name of the repository" - }, { "name": "test_id", "in": "path", @@ -5842,6 +5829,19 @@ "title": "Owner" }, "description": "The owner of the repository" + }, + { + "name": "repository", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" + }, + "description": "The name of the repository" } ], "responses": { @@ -5870,7 +5870,7 @@ } } }, - "/ci/{owner}/repositories/{repository_name}/tests/{test_id}/executions": { + "/ci/{owner}/repositories/{repository}/tests/{test_id}/executions": { "get": { "tags": [ "test_insights" @@ -5880,26 +5880,13 @@ "operationId": "ci-test-executions", "security": [ { - "GitHubTokenBearerAuth": [] + "ApplicationAuth": [] }, { - "ApplicationAuth": [] + "GitHubTokenBearerAuth": [] } ], "parameters": [ - { - "name": "repository_name", - "in": "path", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "pattern": "^[\\w\\-\\.]+$", - "description": "The name of the repository", - "title": "Repository Name" - }, - "description": "The name of the repository" - }, { "name": "test_id", "in": "path", @@ -5926,6 +5913,19 @@ }, "description": "The owner of the repository" }, + { + "name": "repository", + "in": "path", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "pattern": "^[\\w\\-\\.]+$", + "description": "The name of the repository", + "title": "Repository" + }, + "description": "The name of the repository" + }, { "name": "sort", "in": "query", @@ -7900,6 +7900,10 @@ }, "type": "array", "title": "Peer Pull Request Numbers" + }, + "affinity_score": { + "type": "number", + "title": "Affinity Score" } }, "type": "object", @@ -7907,7 +7911,8 @@ "kind", "shared_scopes", "shared_directories", - "peer_pull_request_numbers" + "peer_pull_request_numbers", + "affinity_score" ], "title": "BatchReason", "description": "Why a PR shares its batch (train car) with the other PRs in it.\n\nRe-derived at serialization time from each member's persisted similarity\nsignals \u2014 the same ``scopes`` / ``changed_directories`` the batching\nalgorithm groups on \u2014 so it stays correct as a car is bisected and members\nleave. It reports the signal the car's *current* members actually share,\nnot a replay of the formation-time greedy pick order. ``None`` when the car\nholds a single PR (nothing to explain) or for a not-yet-batched waiting PR." @@ -15268,6 +15273,18 @@ "type": "null" } ] + }, + "is_frozen": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "title": "Is Frozen", + "description": "Whether an ongoing scheduled freeze holds this pull request's merge, independent of its CI status \u2014 it can be running CI and `is_frozen` at once. `false` when no freeze affects it." } }, "type": "object", diff --git a/public/mergify-configuration-schema.json b/public/mergify-configuration-schema.json index ebbda137c2..6257237b18 100644 --- a/public/mergify-configuration-schema.json +++ b/public/mergify-configuration-schema.json @@ -471,10 +471,52 @@ "properties": { "message": { "default": "This pull request has been automatically closed by Mergify.", - "description": "A string template using the Jinja2 syntax.", - "format": "template", - "title": "Template", - "type": "string" + "description": "A string with `{{ variable }}` placeholders. Allowed variables: `approvers`, `assignees`, `author`, `base`, `body`, `head`, `labels`, `number`, `queue_dequeue_reason`, `title`.", + "format": "simple-template", + "title": "Message template", + "type": "string", + "x-mergify-template-variables": [ + { + "description": "The pull request author's login.", + "name": "author" + }, + { + "description": "The pull request number.", + "name": "number" + }, + { + "description": "The pull request title.", + "name": "title" + }, + { + "description": "The pull request description (body).", + "name": "body" + }, + { + "description": "The base branch name.", + "name": "base" + }, + { + "description": "The head branch name.", + "name": "head" + }, + { + "description": "The pull request's labels as a comma-separated list (e.g. `bug, feat`); empty when none.", + "name": "labels" + }, + { + "description": "Assignees as a ready-to-use @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "assignees" + }, + { + "description": "Reviewers who approved, as a @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "approvers" + }, + { + "description": "Why the pull request left the merge queue; empty outside queue contexts.", + "name": "queue_dequeue_reason" + } + ] } }, "title": "CloseActionModel", @@ -623,10 +665,52 @@ "message": { "anyOf": [ { - "description": "A string template using the Jinja2 syntax.", - "format": "template", - "title": "Template", - "type": "string" + "description": "A string with `{{ variable }}` placeholders. Allowed variables: `approvers`, `assignees`, `author`, `base`, `body`, `head`, `labels`, `number`, `queue_dequeue_reason`, `title`.", + "format": "simple-template", + "title": "Message template", + "type": "string", + "x-mergify-template-variables": [ + { + "description": "The pull request author's login.", + "name": "author" + }, + { + "description": "The pull request number.", + "name": "number" + }, + { + "description": "The pull request title.", + "name": "title" + }, + { + "description": "The pull request description (body).", + "name": "body" + }, + { + "description": "The base branch name.", + "name": "base" + }, + { + "description": "The head branch name.", + "name": "head" + }, + { + "description": "The pull request's labels as a comma-separated list (e.g. `bug, feat`); empty when none.", + "name": "labels" + }, + { + "description": "Assignees as a ready-to-use @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "assignees" + }, + { + "description": "Reviewers who approved, as a @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "approvers" + }, + { + "description": "Why the pull request left the merge queue; empty outside queue contexts.", + "name": "queue_dequeue_reason" + } + ] }, { "type": "null" @@ -1812,6 +1896,11 @@ "title": "GitHub code owner review satisfied", "type": "boolean" }, + "github-review-approved": { + "description": "Whether GitHub's effective review enforcement is satisfied: the required approvals are in and no eligible reviewer is blocking with an active 'Request changes'. When the rule requires at least one approval, this mirrors GitHub's `pullRequest.reviewDecision` (so a blocking review from a reviewer other than the approver is honored, unlike a bare approval count). When the rule requires a pull request with no approval count, it blocks only on a write+ reviewer's active 'Request changes'. Returns `true` when no rule on the base branch requires a review.", + "title": "GitHub review approved", + "type": "boolean" + }, "number": { "description": "The pull request number.", "maximum": 9223372036854775807, @@ -2369,6 +2458,7 @@ "github-review-decision", "github-require-review-from-specific-teams", "github-code-owner-review-satisfied", + "github-review-approved", "number", "queue-position", "author", @@ -3232,10 +3322,52 @@ "message": { "anyOf": [ { - "description": "A string template using the Jinja2 syntax.", - "format": "template", - "title": "Template", - "type": "string" + "description": "A string with `{{ variable }}` placeholders. Allowed variables: `approvers`, `assignees`, `author`, `base`, `body`, `head`, `labels`, `number`, `queue_dequeue_reason`, `title`.", + "format": "simple-template", + "title": "Message template", + "type": "string", + "x-mergify-template-variables": [ + { + "description": "The pull request author's login.", + "name": "author" + }, + { + "description": "The pull request number.", + "name": "number" + }, + { + "description": "The pull request title.", + "name": "title" + }, + { + "description": "The pull request description (body).", + "name": "body" + }, + { + "description": "The base branch name.", + "name": "base" + }, + { + "description": "The head branch name.", + "name": "head" + }, + { + "description": "The pull request's labels as a comma-separated list (e.g. `bug, feat`); empty when none.", + "name": "labels" + }, + { + "description": "Assignees as a ready-to-use @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "assignees" + }, + { + "description": "Reviewers who approved, as a @mention list (e.g. `@alice, @bob`); empty when none.", + "name": "approvers" + }, + { + "description": "Why the pull request left the merge queue; empty outside queue contexts.", + "name": "queue_dequeue_reason" + } + ] }, { "type": "null"